javascript - 使用 POST 发送数据到 JSONP 请求

标签 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 请求在查询字符串中传递吗?

任何立即的帮助都将非常感激。谢谢。

最佳答案

Is it possible to post data to JSONP?

不,不是。

JSONP 的工作原理是添加 <script> 从其 src 获取数据的元素(数据嵌入在 JavaScript 程序中)。您无法发出 POST 请求来加载 JavaScript 程序。

Or does all data have to be passed in the querystring as a GET request?

是的

<小时/>

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

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

关于javascript - 使用 POST 发送数据到 JSONP 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35477537/

相关文章:

javascript - 如何在表单提交到的 HTML 文件中显示使用 post 方法提交的值?

javascript - 使用 angular.copy 扩展服务

javascript - Angular UI-Router $urlRouterProvider 。当我单击 <a ui-sref ="..."> 时不工作时

angularjs - Angular - ng-hide 与 localStorage 不起作用

angularjs - 更改资源的基本 URL

json - 如何与 Telegram API 交互

c - 从客户端向服务器发送一个字符串,然后保存文件 [使用 C]

javascript - Jquery 可排序不适用于触摸

javascript - 将 JavaScript 添加到 w2ui 面板

javascript/jquery : problem calling a function inside an object (function undefined)