html ajax访问webapi 跨域

2021-03-06 16:29

阅读:405

YPE html>

标签:响应头   meta   ESS   requested   config   body   protocol   appid   server   

一、为什么会出现跨域问题

出于浏览器的同源策略限制。同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。所谓同源(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)和端口号(port)

 

二、什么是跨域

 

当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域

 

当前页面    http://localhost:60503/testWebApi.aspx

访问页面   http://localhost:8080/ierp/api/getAppToken.do

端口不一致 出现跨域

 

三、跨域解决方法

1、jsonp

  

$.ajax({
                url: "http://localhost:8080/ierp/api/getAppToken.do",
                data: JSON.stringify(data),
                type: "get",
                 dataType: jsonp,
                 crossDomain: true,
                contentType: false,//"application/json",
                success: function (data) {
                      alert(data)
                }
})            

jsonp只能是get访问

 

2、CORS

在web.config中添加

"Access-Control-Allow-Origin" value="*" />
        
        "Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
        
        "Access-Control-Allow-Headers" value="Content-Type,X-Requested-With,token" />
        
        "Access-Control-Request-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
        
      

html

 1 "C#" AutoEventWireup="true" CodeBehind="testWebApi.aspx.cs" Inherits="ZGFK.testWebApi" %>
 2 
 3 
 4 
 5 "http://www.w3.org/1999/xhtml">
 6"server">
 7     
 8 
 9     10     11     61 
62 
63     
"form1" runat="server"> 64
65 66
67
68 69

 

html ajax访问webapi 跨域

标签:响应头   meta   ESS   requested   config   body   protocol   appid   server   

原文地址:https://www.cnblogs.com/Julyra/p/12858478.html


评论


亲,登录后才可以留言!