【问题标题】:JQuery $.ajax(),$.post() sending GET as Request MethodJQuery $.ajax(),$.post() 发送 GET 作为请求方法
【发布时间】:2015-09-07 19:04:57
【问题描述】:

我已经浏览了所有建议的链接以找出解决方案,但是当我尝试将$.post() 发送为GET 作为Request_Method 时,它仍然给了我错误

GET https://example.com/samewebservice/save 405 (Method Not Allowed)

这是一个跨域请求,所以我已启用服务器上的所有 CORS 设置, 如果我执行 $.get() 方法,它将成功地以 JSON 格式给我响应。

但是当我尝试执行$.post() 方法时,它给了我错误。

POST ajax 请求

function postAjax(URL,jsonData){

  $.post(URL,jsonData,function(data){
    response = data;
     alert("In success");
     console.log(data);
  },"jsonp");
  return response;
}

在浏览器标题上我得到了这个

【问题讨论】:

    标签: javascript jquery ajax post get


    【解决方案1】:

    只是猜测。尝试添加 type

    function postAjax(URL,jsonData){
      $.post(URL,jsonData,
        type:'POST',
        function(data){
          response = data;
          alert("In success");
          console.log(data);
      },
      "jsonp");
    
      return response;
    }
    

    B/w jsonp 数据类型可能是这里的原因。检查这个answer

    【讨论】:

    • 不工作,$.post()不接受type:'POST'作为参数
    • 然后您可以将数据类型更改为“json”而不是“jsonp”或将“post”函数更改为“ajax”
    • 如果我将$.ajax() 方法与datatype:jsonptype:'POST' 一起使用,它也会给出与上述相同的错误
    • 我猜这是跨域 json 对象获取的情况。您可以尝试添加过滤器或其他东西。请检查这个答案-stackoverflow.com/a/26803206/354307
    • jQuery 库 [has type already] in post function (github.com/jquery/jquery/blob/2.2.4/src/ajax.js#L836),这里手动添加没用
    【解决方案2】:

    您不能使用 JSONP 发布...它会创建一个 <script> 元素来获取数据..这必须是一个 GET 请求。

    【讨论】:

      【解决方案3】:

      我的“HttpRequestMessage 请求”参数之前有一个 [FromBody];这没有正确解析............

      【讨论】:

        猜你喜欢
        • 2015-07-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多