3 回答

TA貢獻1900條經(jīng)驗 獲得超5個贊
dataType:'jsonp',
您正在發(fā)出JSONP請求,但服務器正在使用JSON進行響應。
瀏覽器拒絕嘗試將JSON視為JSONP,因為這會帶來安全風險。(如果瀏覽器確實試圖將JSON視為JSONP,那么它最多會失?。?/p>
有關JSONP的更多詳細信息,請參閱此問題。請注意,在CORS可用之前使用的同源策略是一個討厭的黑客。CORS是一個更清潔,更安全,更強大的解決方案。
看起來你正試圖制作一個跨原始的請求,并在一大堆相互矛盾的指令中拋出你能想到的一切。
您需要了解同源策略的工作原理。
有關詳細指南,請參閱此問題。
現(xiàn)在關于你的代碼的一些注釋:
contentType: 'application/json',
使用JSONP時會忽略此項
您正在提出GET請求。沒有請求體來描述其類型。
這將使跨域請求變得非簡單,這意味著除了基本的CORS權限之外,您還需要處理飛行前的問題。
刪除它。
dataType:'jsonp',
服務器沒有響應JSONP。
刪除它。(您可以使服務器使用JSONP進行響應,但CORS更好)。
responseType:'application/json',
這不是jQuery.ajax支持的選項。刪除它。
xhrFields:{withCredentials:false},
這是默認值。除非您使用ajaxSetup將其設置為true,否則請將其刪除。
headers: {
'Access-Control-Allow-Credentials' : true,
'Access-Control-Allow-Origin':'*',
'Access-Control-Allow-Methods':'GET',
'Access-Control-Allow-Headers':'application/json',
},
這些是響應標頭。它們屬于響應,而不是請求。
這將使跨域請求變得非簡單,這意味著除了基本的CORS權限之外,您還需要處理飛行前的問題。
添加回答
舉報