摘要:
想要使用POST方法将数据发送到另一个域到JSONP。
代码:
$http.jsonp($scope.baseApiUrl+'QueryBuilder/getData?callback=JSON_CALLBACK')
.success(function(data, status, headers, config) {
$scope.success = true;
console.log(data);
}).error(function (data, status, headers, config) {
$scope.error = true;
});
工作正常。但是我有很多需要发送到服务的数据,跨域,并且它太大而无法通过查询字符串发送。所以我想把它作为JSON发送。
data: {
"dbName":"test",
"tables":["city","persons"],
"filters":["city_id='Hyd'"]
}
调查结果:
How to make a jsonp POST request that specifies contentType with jQuery?
Unable to post data using JSONP on Cross Domain
How to send data using JSONP from localhost to domain.com
Using PUT/POST/DELETE with JSONP and jQuery
每个帖子都显示它不可能。那么有没有其他方法可以做到这一点?
问题:
是否可以将数据发布到JSONP?或者所有数据都必须作为GET请求在查询字符串中传递?
任何直接的帮助都会非常值得注意。感谢。
答案 0 :(得分:3)
是否可以将数据发布到JSONP?
不,不是。
JSONP的工作原理是添加一个 if(strcmp(idname, "localuser") == 0) {
// then I know idname is localuser
}
元素,从其if first character of idname is a number then foo =1
if first character of idname is an upper case letter then foo =2
if first character of idname is a lower case letter then foo =3
获取数据(数据嵌入在JavaScript程序中)。您无法发出POST请求来加载JavaScript程序。
或者所有数据都必须作为GET请求在查询字符串中传递吗?
是
JSONP是一个肮脏的黑客,可以绕过同源策略。
引入CORS作为绕过同源策略的标准方法,该策略更加灵活。如果CORS授权,您可以使用XMLHttpRequest发出POST请求。请改用CORS。