使用 POST 发送数据到 JSONP 请求

问题描述 投票:0回答:1

总结:

我想使用 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'"]
}

调查结果:

如何使用 jQuery 发出指定 contentType 的 jsonp POST 请求?
无法跨域使用 JSONP 发布数据
如何使用 JSONP 从 localhost 向 domain.com 发送数据
通过 JSONP 和 jQuery 使用 PUT/POST/DELETE

每个帖子都表明这是不可能的。那么有没有其他方法可以做到这一点?

问题:

是否可以将数据发布到JSONP?或者所有数据都必须作为 GET 请求在查询字符串中传递吗?

javascript angularjs http-post jsonp
1个回答
4
投票

是否可以将数据发布到JSONP?

不,不是。

JSONP 的工作原理是添加一个

<script>
元素,该元素从其 src 获取
数据(数据嵌入在 JavaScript 程序中)。您无法发出 POST 请求来加载 JavaScript 程序。

或者所有数据都必须作为 GET 请求在查询字符串中传递吗?

是的


JSONP 是一种绕过同源策略的肮脏黑客。

CORS 是作为绕过同源策略的标准方法而引入的,这种策略更加灵活。如果经过 CORS 授权,您可以使用 XMLHttpRequest 发出 POST 请求。请改用 CORS。

© www.soinside.com 2019 - 2024. All rights reserved.