【问题标题】:How to make a cross domain ajax call [duplicate]如何进行跨域ajax调用[重复]
【发布时间】:2013-04-26 04:56:42
【问题描述】:

我可以访问一个 JSP 文件并采用 JSON 格式的 API。我正在尝试将这些数据从 JSP 页面获取到 PHP 脚本并处理它们,然后存储在我的 MySQL 服务器中。

JSON 字符串在我在几个 JSON Formatter 和 validator 在线检查的 JSP 页面中是有效的。

这是我用来从页面获取 JSON 数据的代码,但是每次我的 ajax 调用失败时。

$('#button').click(function(e){
var url = 'http://xxxxx:8080/StudentAPI/index.jsp';
$.ajax({
    url : url,
    dataType : 'json',
    success : function(response) {
        alert('Success');
    },
    error : function(request, textStatus, errorThrown) {
        alert(request+textStatus+errorThrown);
    }
});
e.preventDefault();
})

请帮助我,任何以更好的方式做的建议总是受欢迎的。

【问题讨论】:

  • 这是一个跨域问题
  • @mithunsatheesh:那我还有什么选择?

标签: php jquery ajax jsp


【解决方案1】:

您正在进行跨域 ajax 调用。所以如果你像普通的ajax调用一样尝试它是行不通的。

一种方式是喜欢

  1. 在您向其发出 ajax 请求的服务器端将“Access-Control-Allow-Origin”设置为“*”。

  2. 然后使用设置变量中的“crossDomain”属性“true”进行jquery ajax 调用。

另一种方法是使用jsonp

根据您使用的服务器,您可以找到如何添加 cors in this article

更新

她是a w3c article,它描述了如何在 java servlet 中配置 cors。请参阅在 Java servlet 中部分。

关键是给出 ajax 响应的服务器应该有 响应标头中的"Access-Control-Allow-Origin" 字段设置为"*"

【讨论】:

  • 如何设置访问控制允许来源?我应该在哪里设置?能详细说下吗。。
  • Tomcat服务器中的JSP文件,我检查了第一篇文章中提到的.conf文件但我没有找到任何conf文件.. :(。我需要在服务器中允许吗我将把我的 PHP 文件放在哪里?
  • 不需要。它应该在目标服务器或ajax调用页面中。在您的情况下,我相信这是tomcat上的jsp页面。 PHP 与此问题无关。您甚至可以制作一个托管在服务器上的纯 html 页面并从中启动您的 ajax 调用。
  • 你查看过 w3c 的文章吗?我相信你可以做类似response.addHeader("Access-Control-Allow-Origin", "*"); 的事情。对不起,如果我错了,因为没有足够的 Java 接触。
  • 为互联网连接苦苦挣扎了一段时间:(.. 是的,我已经写了 response.addHeader.. 我的问题仍然存在..
猜你喜欢
  • 2013-12-07
  • 2011-04-10
  • 2012-01-11
  • 1970-01-01
  • 2011-02-24
  • 2013-11-15
  • 2012-04-14
  • 2014-08-23
相关资源
最近更新 更多