ie 9 kendo ui中ajax跨域的問題

2021-09-02 02:51:52 字數 1135 閱讀 2805

這兩天遇到個問題,kendo ui的datagrid,根據json去讀取資料,然後前端通過kendo ui的datagrid去渲染,但很奇怪的是,在ie 10,ie 11,chrome,firefox等瀏覽器中,同樣的程式,

瀏覽起來是沒問題的,但把應用放到公網上的一台伺服器,

卻發現如下情況:

1) ie 9下,不能出現任何資料,但用ie 9瀏覽器瀏覽本機的應用,卻沒任何問題

2) ie 10,chrome等瀏覽公網的應用和本機的應用,沒任何問題,ajax請求的資料能返回給datagrid顯示

綜合判斷,原來發現,公網上的瀏覽位址http:/******/test/***xx,用的是80埠,

但ajax請求中,用的是:

<%

string path = request.getcontextpath();

string basepath = request.getscheme() + "://"

+ request.getservername() + ":" + request.getserverport()

+ path + "/";

%>

var datasource = new kendo.data.datasource(,

看到沒有,這裡用的是帶埠的url ajax請求,比如實際就是

http://******:80/***x!geta***.action了,但這個時候,ie 9很奇怪,會判斷是跨域請求了(注意:我的web伺服器沒網域名稱的,就是用ip),所以解決方法簡單,或者是用jsonp,

或者就是在ajax請求前,使用:

jquery.support.cors = true;

cross-origin resource sharing (cors) 是w3c草案擬定的瀏覽器與服務端如何進行跨域請求的方式,其原理是用自定義http頭來讓瀏覽器和server決定request、response的成功或失敗。目前幾乎所有瀏覽器都已經支援了(internet explorer 8+, firefox 3.5+, safari 4+, and chrome)。

jquery.support.cors只是對cors協議的一種實現,具體可以看jquery的源**,這裡不多說。

IE9 AJAX返回undefined 問題解決

jquery的ajax返回結果為undefined,並且有 由於出現錯誤c00ce56e 的錯誤提示。這個問題是由於ie9不能解析其他編碼而產生的。解決這個問題之需要按照w3c規範,宣告一下編碼為utf 8 更鬱悶的問題是,如果在 裡面這樣書寫頭宣告 header content type text...

IE9 IE8 ajax跨域問題的快速解決方法

網上解決辦法均是 www.cppcns.com在發起請求之前新增 jquery.support.cyacbtors true 但是,線下測試,是o程式設計客棧k的,一放到伺服器上,又出現了新的eroor readystate 0,status 0,statustext error 拒絕訪問.最後,問...

IE9 下ajax動態記載table布局錯亂問題。

很簡單的問題搞了好久。如果用ajax動態載入table,不管是載入一行還是載入乙個整table,都會遇到隨機的table錯亂問題,原因可能是與ie9把空格也渲染了,解決的辦法是 去掉所有td之間的空格,允許td換行,stackoverflow上有解答 如果不方便修改源 可以在載入完成後用js去掉空格...