如何进行跨域ajax调用

New*_*ser 5 php ajax jquery jsp

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

JSON字符串在我在少量JSON Formatter和验证器在线检查的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();
})
Run Code Online (Sandbox Code Playgroud)

请帮助我,并建议以更好的方式做到这一点,我们总是欢迎.

mit*_*esh 3

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

一种方法是

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

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

另一种方法是使用jsonp

根据您使用的服务器,您可以在本文中找到如何添加 cors 。

更新

她是一篇 w3c 文章,描述了如何在 java servlet 中配置 cors。请参阅在 Java servlet 中部分。

要点基本上是提供 ajax 响应的服务器应该 在响应标头中"Access-Control-Allow-Origin"设置字段。"*"