後端使用Nginx並更改本地host文件,起本地服務。將aaa.bbbb.com代理至本地IP地址(10.26.36.156)。
使用$.ajax調用後端restful接口,要求content-type爲application/json格式,並要求在request headers里加一些內容。前端
$.ajax({ headers : { 'Accept': 'application/json', 'Content-Type': 'application/json', 'user-id':'123', 'ghf-id': '456' }, url: 'https://10.26.36.156/aaa/vds/dsg', type: 'PATCH', data: JSON.stringify(data), dataType: 'json', success: function (response) { }, error: function (msg) { } })
後端使用postman 能夠訪問成功
瀏覽器network抓請求,結果以下,可是代碼並無觸發後端的代碼斷點....
這是爲何呢?node
由於host文件的配置,騙過了瀏覽器,進行了一次options請求,可是對於js引擎來講,這裏的ip地址與瀏覽器的域名不一樣,因此出現了跨域,所以設置到了Access-Control-Request-Headers裏面。git
方案一:
不走IP(不寫絕對路徑),而是相對路徑
方案二:
將IP地址加入白名單(node js裏面是如此,其餘語音應該也有相應的)。
借用凝雨關於跨域踩坑經驗總結github