准备写api试试,但是ajax一直遇到跨域问题,postman都能正确获取,所以查资料

Posted 东方华夏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了准备写api试试,但是ajax一直遇到跨域问题,postman都能正确获取,所以查资料相关的知识,希望对你有一定的参考价值。

function goupdathyzt(sqid, zt) {

$.ajax({
async: false,
url: "http://localhost:17298/api/aaa/sss",
type: "get",
//必填
contentType: "application/json; charset=utf-8",

data: { "huo_id": 13, "huozhu_id": 7 },//必要
timeout: 5000,

//服务器段返回的对象包含name,data属性. 
success: function (result) {
alert(result.obj.huo_num);
},
error: function (jqXHR, textStatus, errorThrown) {
alert(textStatus);
}
});
}

在global中增加如下

 protected void Application_BeginRequest()
        {
            if (Request.Headers.AllKeys.Contains("Origin") && Request.HttpMethod == "OPTIONS")
            {
                Response.End();
            }
        }

配置文件中增加

<system.webServer>
    <httpProtocol>
      <!--跨域配置开始-->
      <customHeaders>
        <add name="Access-Control-Allow-Origin" value="*" />
        <!--支持全域名访问,不安全,部署后需要固定限制为客户端网址-->
        <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
        <!--支持的http 动作-->
        <add name="Access-Control-Allow-Headers" value="Content-Type" /><!--//,X-Requested-With,token-->
        <!--响应头 请按照自己需求添加 这里新加了token这个headers-->
        <add name="Access-Control-Request-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
        <!--允许请求的http 动作-->
      </customHeaders>
      <!--跨域配置结束-->
    </httpProtocol>

非常感谢这两位博文

https://www.cnblogs.com/amylis_chen/p/5998215.html

https://www.cnblogs.com/stoneniqiu/p/9034535.html

以上是关于准备写api试试,但是ajax一直遇到跨域问题,postman都能正确获取,所以查资料的主要内容,如果未能解决你的问题,请参考以下文章

WebAPI Ajax 跨域请求解决方法(CORS实现)

跨域 AJAX 请求不起作用

如何构建非跨域的 AJAX API?

springmvc用@crossorigin解决跨域 ajax怎么写

关于AJAX请求的跨域问题以及JSONP的示例

spring boot——ajax跨域