JQuery $.ajax(),$.post()将GET作为请求方法发送

3
我已经查看了所有建议的链接,以找到解决方案,但仍然无法解决问题。在尝试使用$.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;
}

在浏览器头部中,我收到了这个: 输入图像描述
3个回答

3
只是猜测。试着加上type
function postAjax(URL,jsonData){
  $.post(URL,jsonData,
    type:'POST',
    function(data){
      response = data;
      alert("In success");
      console.log(data);
  },
  "jsonp");

  return response;
}

可能是由于使用了jsonp数据类型导致的。请查看此答案


无法工作,$.post()不接受type:'POST'作为参数。 - rachana
然后,您可以将数据类型更改为“json”而不是“jsonp”,或者将“post”函数更改为“ajax”。 - Karthik
如果我使用datatype:jsonptype:'POST'$.ajax()方法,它也会产生与上述相同的错误。 - rachana
这是一个跨域JSON对象获取的情况。你可以尝试添加过滤器或其他东西。请查看这个答案 - https://dev59.com/BWQm5IYBdhLWcg3wyhjk#26803206 - Karthik
jQuery库已经在post函数中有类型了(https://github.com/jquery/jquery/blob/2.2.4/src/ajax.js#L836),手动添加在这里是无用的。 - vladkras

1
您无法使用JSONP进行POST请求...它会创建一个<script>元素来获取数据..这必须是一个GET请求。

0

在我的 "HttpRequestMessage request" 参数之前,我有一个 [FromBody];但这个并没有正确解析......


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接