ie-9 以下ajax无法跨域的问题。只要add:jQuery.support.cors=true;即可
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | if (!jQuery.support.cors && window.XDomainRequest) { var httpRegEx = /^https?:\/\ //i; var getOrPostRegEx = /^ get |post$/i; var sameSchemeRegEx = new RegExp( '^' +location.protocol, 'i' ); var xmlRegEx = /\/xml/i; // ajaxTransport exists in jQuery 1.5+ jQuery.ajaxTransport( 'text html xml json' , function(options, userOptions, jqXHR){ // XDomainRequests must be: asynchronous, GET or POST methods, HTTP or HTTPS protocol, and same scheme as calling page if (options.crossDomain && options.async && getOrPostRegEx.test(options.type) && httpRegEx.test(userOptions.url) && sameSchemeRegEx.test(userOptions.url)) { var xdr = null ; var userType = (userOptions.dataType|| '' ).toLowerCase(); return { send: function(headers, complete){ xdr = new XDomainRequest(); if (/^\d+$/.test(userOptions.timeout)) { xdr.timeout = userOptions.timeout; } xdr.ontimeout = function(){ complete(500, 'timeout' ); }; xdr.onload = function(){ var allResponseHeaders = 'Content-Length: ' + xdr.responseText.length + '\r\nContent-Type: ' + xdr.contentType; var status = { code: 200, message: 'success' }; var responses = { text: xdr.responseText }; try { if (userType === 'json' ) { try { responses.json = JSON.parse(xdr.responseText); } catch (e) { status.code = 500; status.message = 'parseerror' ; //throw 'Invalid JSON: ' + xdr.responseText; } } else if ((userType === 'xml' ) || ((userType !== 'text' ) && xmlRegEx.test(xdr.contentType))) { var doc = new ActiveXObject( 'Microsoft.XMLDOM' ); doc.async = false ; try { doc.loadXML(xdr.responseText); } catch (e) { doc = undefined; } if (!doc || !doc.documentElement || doc.getElementsByTagName( 'parsererror' ).length) { status.code = 500; status.message = 'parseerror' ; throw 'Invalid XML: ' + xdr.responseText; } responses.xml = doc; } } catch (parseMessage) { throw parseMessage; } finally { complete(status.code, status.message, responses, allResponseHeaders); } }; xdr.onerror = function(){ complete(500, 'error' , { text: xdr.responseText }); }; xdr.open(options.type, options.url); //xdr.send(userOptions.data); xdr.send(); }, abort: function(){ if (xdr) { xdr.abort(); } } }; } }); }; |
add: jQuery.support.cors = true;
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步