function jsonData() {
$.ajax({
async: false,
url:'http://localhost:8080/libraryapi/BookTransactionController',
type: 'GET',
dataType: 'jsonp',
success: function() { alert("Success"); },
error: function() { alert('Failed!'); },
});
}
状态是200 Ok并且服务器也在响应json数据但它正在调用错误函数?
Ths Json data response from browser is:
[{"bookName":"Book","dueDate":"2015-4-8","issueDate":"2015-5-16","studentId":201},
{"bookName":"Book2","dueDate":"2015-4-8","issueDate":"2015-5-16","studentId":211}]
答案 0 :(得分:0)
即使您在同一台计算机上工作,也会发生这种情况,因为您的API服务器端口和API使用应用程序的端口不同,浏览器不允许跨域资源共享。
解决方案正在实施CORS。有关详细信息,请阅读Mozilla Documentation on CORS。
对于您的问题,可能的解决方案是:
如果您的API是Java,请使用:
response.addHeader("Access-Control-Allow-Origin", "*");
上面一行中的 *
将允许访问所有域,仅允许访问特定域:
response.addHeader("Access-Control-Allow-Origin", "http://www.example.com");
如果您的API使用的是PHP语言,请使用:
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST');
header("Access-Control-Allow-Headers: X-Requested-With");
如果您使用的是Flask Microframework,请使用Flask-CORS