【问题标题】:JQUERY, AJAX, POST method errorJQUERY、AJAX、POST 方法错误
【发布时间】:2014-05-28 21:08:11
【问题描述】:

我正在尝试使用带有以下代码 sn-p 的方法 post 进行 JQUERY ajax 调用, 但是调用没有对服务器进行并且接收错误..请求的资源上没有“Access-Control-Allow-Origin”标头。

根据我从各种帖子中看到的建议,我们在服务器端代码中添加了这些标头。那里没有运气。 我也在客户端添加了标题。 我正在尝试从本地机器到开发环境中的服务器。 另一个 get 请求工作正常,我只有 post 有问题。 我尝试了 JSON.stringify 的数据,但没有运气。

 $.ajax({
    url: ttsCreateURL,
    type: "POST",
    dataType: 'json',

    crossDomain: true,
    data: { "ballotId" : "0" ,"conMonth": "JUN2014","empId":"9999","airlineCode":"AA", "createdDate":"" },

    success: function(response){            
               alert(response);

    },
    error:function(xhr, ajaxOptions, thrownError){
        //ajaxError("There was an error .  Please try again.",xhr, ajaxOptions, thrownError);
         $('#Main').load('error.html');
    }   
  });

当我尝试在浏览器中查看 url 以及查询字符串参数时,我看到错误 415:不支持的媒体类型 错误。

【问题讨论】:

  • 您的服务器是否支持 JSON 的“接受”标头?
  • 你真的得到了 cors 标题吗?检查 curl -I 网址。如果没有,您应该在服务器(@ttsCreateURL)上正确启用它enable-cors.org/server.html

标签: jquery ajax rest post


【解决方案1】:

更改 dataType="jsonp" 并在服务器端使用回调。

【讨论】:

    【解决方案2】:

    如果你真的想使用 CORS 而不是 JSONP,这里有一些跨域请求故障排除的提示:

    1. 显然Access-Control-Allow-Origin 不见了。确保您的服务器始终设置正确的响应标头。使用本地网络代理可以确定这一点。在 Windows 上,我使用 Fiddler。在 Linux 上,我认为 Wireshark 可以工作。
    2. 在客户端添加标头将无济于事。如果您发现您的服务器没有添加标头,例如因为它对 POST 的处理方式不同,请更改您的客户端代码以触发服务器添加标头或更改服务器以正确回复。
    3. 当心Preflighted requests。如果您修改客户端的请求标头,则可能会发出这样的请求。它将在没有任何其他 POST 信息的情况下发送(即没有 POST 正文)。在您对此类 OPTIONS 请求的响应中包含 Access-Control-Allow-Methods 标头 [显然带有 POST] 以及其他 Access-Control*-标头。
    4. 如果您发送 withCredentials(但示例中没有给出),Access-Control-Allow-Origin 标头不能是通配符。

    当您在浏览器中请求 URL 时,您会收到 415 错误,请查看此特定服务器的预期内容。默认情况下,当使用$.ajax 时,jQuery URL 对您的请求 (application/x-www-form-urlencoded) 数据进行编码。 HTTP 状态码 415 表示您的客户端发送了服务器不喜欢使用的内容。如果服务器在您的 POST 中也使用 415 退出,那么如果没有 Access-Control-Allow-Origin 标头(通常不会出现在错误处理程序中)也就不足为奇了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-16
      • 1970-01-01
      • 2013-09-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多