2011-09-12 99 views
0

我正在進行jsonp調用,如下所示。它是一個跨域調用,它在FF中正常工作,但在IE9中失敗,我在IE中看到以下消息。IE9中的JSONP AJAX調用錯誤

SEC7112: Script from http://site.com/a.jsp was blocked due to mime type mismatch 

我看到這篇文章http://msdn.microsoft.com/en-us/library/gg622941%28v=vs.85%29.aspx,它說它將忽略響應與無鑑別響應。那麼這個頭文件依賴於服務器?我如何解決它 ?有什麼解決方法嗎?

$.ajax({ type: 'POST', 
     url: 'http://www.othersite.com/index.jsp', 
     data: 'action=delete&id=121', 
     contentType: 'application/javascript', 
     dataType: 'jsonp', 
     success: function(data) { 
         alert(data.fromname); 
     } 
+0

@IAbstractDownvoteFactory:該問題標記爲「cross-domain」,但url爲「index.jsp」。所以,爲什麼OP要做'JSONP'這很奇怪。 _編輯_:這個問題已經被編輯了,所以'JSONP'是針對OP解釋的跨域請求。 – Shef

+0

@Shef我編輯的問題。 –

+0

檢查響應內容類型...它必須匹配http://msdn.microsoft.com/en-us/library/gg622941%28v=vs.85%29.aspx中的內容類型如果內容類型是另一個,並且它包含標題中的nosniff指令,如果您無法控制「othersite.com」,那麼您的運氣不好 –

回答

0

如MSDN誤差表示:nosniff:如果服務器發送響應標頭X-的Content-Type-選項

SCRIPT和樣式表元素將拒絕使用不正確的MIME類型的響應。這是一項安全功能,可幫助防止基於MIME類型混淆的攻擊。

嘗試在頁面的服務器端發送「X-Content-Type-Options:nosniff」,如果這不適用於ie,您只需要觸摸www.othersite.com服務器標題。

即有時是頭痛。

相關問題