使用POST将数据发送到JSONP请求

时间:2016-02-18 09:30:31

标签: javascript angularjs http-post jsonp

摘要:

想要使用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请求在查询字符串中传递?

任何直接的帮助都会非常值得注意。感谢。

1 个答案:

答案 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。