所以,我有一个脚本使用jQuery通过这个调用向另一个服务器发出请求:
$.ajax({
url: URL,
type: 'GET',
dataType: 'jsonp',
success:function(data) {
$.each(data, function(index, element) {
// success!
});
}
});
但是,这在angularjs中会返回一个access-control-allow-origin错误:
var request = {
method: 'get',
url: URL } $http(request).
success(function(data, status, headers, config) {
// success!
}).
error(function(data, status, headers, config) {
// error!
});
与另一位开发人员交谈,ajax调用开始工作的唯一方法是在调用中添加 dataType:'jsonp'参数。否则,它会在$ .ajax中返回相同的错误。
我尝试通过请求变量中的'Accept'标头字段提供此功能,并将方法从 get 更改为 jsonp 但它不起作用。是否有一个特定的参数我可以传递给$ http请求,类似于数据类型:thr $ .ajax调用中的jsonp会使这个工作吗?
答案 0 :(得分:3)
使用jQuery,它会自动将callback=somethng
添加到正确编写的jsonp服务所需的url。 Angular不会自动执行此操作,而是需要您自己添加参数JSONP_CALLBACK
,然后使用自己的回调名称替换该角度。
http://domain.com/myservice?callback=JSONP_CALLBACK