我正在尝试使用来自其他服务器的ajax从我的服务器请求数据作为web服务。它返回由json_encode
生成的有效json {"reference":"","mobile":"","document":"","appointment":""}
为了避免访问控制允许来源问题,我使用了dataType作为' jsonp'。但是,每当我这样做时,我都会收到一个我无法解决的解析错误(尽管我也试图从其他人那里复制一些其他有效的json。
任何人都知道如何解决这个问题?
答案 0 :(得分:0)
好吧,jsonp
应该是json
padding
的数据类型,不仅仅是任何 json
。
jsonp
正常 json
包含在函数中。因此,当您收到jsonp
时,您可以在闭包中使用该函数并获得所需的输出。
要避免跨浏览器问题,您有三种选择:
如果你能够真实地描述你想要完成的事情,我可能会更好。
答案 1 :(得分:0)
使用Json进行CORS错误/访问控制允许来源问题我执行以下操作, 在API端,我确保标题设置为允许所有。我正在使用SLIM框架(php),但这可以在任何框架中完成。
function get_data(){
.....(get the data from db)......
$response->headers->set('Access-Control-Allow-Origin', '*');
$response->headers->set('Cache-Control', 'no-cache');
$response['Content-Type'] = 'application/json';
$response->body(json_encode($result));
}
在jquery结束时,我会像这样调用API,
$.ajax({
url: "http://api.example.com/v1/get-data",
success: function(data) {
console.log(data);
},
error: function(){
console.log('error');
},
method:"GET",
async: true,
});
如果上述因某些原因无效并且您必须使用jsonp,请执行以下操作: https://stackoverflow.com/a/6879276/4369851