【问题标题】:Posting data via JQuery Ajax通过 JQuery Ajax 发布数据
【发布时间】:2016-09-01 03:47:33
【问题描述】:

我在使用 JQuery 发布数据时遇到问题。当我通过 Chrome Extension Postman 执行此操作时,它工作正常。

我的代码

var request = $.ajax({
    url:                'http://pankajserver.in/api/SaveRoleApi',
    type:               "POST",
    data:               {Role : "wsed"},
    async:              true,
    contentType:        "application/json; charset=utf-8",
    "X-Requested-With":   "XMLHttpRequest"
});

request.done(function(msg) {
    debugger;
});

request.fail(function(jqXHR, textStatus) {
    debugger;
});

网址:http://pankajserver.in/api/SaveRoleApi
内容类型:“应用程序/json;charset=utf-8”
X-Requested-With: "XMLHttpRequest"

使用 Postman Chrome 扩展程序发布数据时工作正常。截图如下

【问题讨论】:

  • 请您在控制台中看到的错误,或者使用 ajax 调用它时的结果。
  • 控制台中显示的状态码是什么??
  • 当您使用对象作为data: 选项时,它使用Content-type: application/x-www-form-urlencoded 发送参数。它不能自动发送 JSON,如果你需要这样做你需要调用JSON.stringify()

标签: php jquery ajax


【解决方案1】:

请试试这个

$.ajax({
    "async": true,
    "crossDomain": true,
    "url": "http://pankajserver.in/api/SaveRoleApi",
    "method": "POST",
    "headers": {
        "content-type": "application/x-www-form-urlencoded",
        "x-requested-with": "XMLHttpRequest",
    },
    "data": {
        "Role": "wsed"
    },
    success: function (msg) {
        debugger;
    },
    error: function (jqXHR, textStatus) {
        debugger;
    }
});

我在控制台中看到错误 Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://pankajserver.in/api/SaveRoleApi. (原因:CORS 标头“Access-Control-Allow-Origin”缺失)。

为此,请通过将此代码放置在您的根 .htaccess 中来允许跨源

<IfModule mod_headers.c>
   Header set Access-Control-Allow-Origin "*"
</IfModule>

有关允许跨源的更多信息,请参阅this link

【讨论】:

  • 我得到了错误:这里是截图:i.stack.imgur.com/zCS1T.png
  • 您是在同一个域上尝试此代码还是请允许服务器上的跨源并重试
【解决方案2】:

写这个标题: {'X-Requested-With': 'XMLHttpRequest'} 而不是 "X-Requested-With": "XMLHttpRequest" 和 dataType: "json" 而不是 contentType: "application/json; charset= utf-8",

var request = $.ajax({
 url:                'http://pankajserver.in/api/SaveRoleApi',
 type:               "POST",
 data:               {Role : "wsed"},
 async:              true,
 dataType: "json",
 contentType:        "application/json; charset=utf-8",
 headers: {'X-Requested-With': 'XMLHttpRequest'}
});

request.done(function(msg) {
 debugger;
});

request.fail(function(jqXHR, textStatus) {
 debugger;
});

【讨论】:

  • 能否请您在您的帖子中输入正确的 jquery 代码?非常感谢您的回答。
  • 我得到了错误:这里是截图:i.stack.imgur.com/zCS1T.png
猜你喜欢
  • 1970-01-01
  • 2011-02-10
  • 2017-01-21
  • 2015-05-20
  • 1970-01-01
  • 2011-01-03
  • 2020-04-19
  • 2014-01-10
  • 1970-01-01
相关资源
最近更新 更多