Ajax跨域請求webservice

2021-07-04 03:18:48 字數 2419 閱讀 2590

web開發中ajax非同步跨域請求,ajax是不支援跨域的,可以將ajax跨域轉換為後台httpwebrequest 請求

例項:請求service.asmx中的students方法  接受兩個引數 startmonth和endmonth

實現跨域請求:

首先建立乙個handler

修改方法

//引數和值

stream streamdata = request.inputstream;

streamreader reader = new streamreader(streamdata, asciiencoding.utf8);

string postdata = reader.readtoend();

byte content = encoding.utf8.getbytes(postdata);

try}

else if (request.requesttype.tolowerinvariant().equals("get"))

//返回請求結果

webresponse mres = mreq.getresponse();

stream mstream = mres.getresponsestream();

streamreader sr = new streamreader(mstream);

string strresult = sr.readtoend();

context.response.write(strresult );}}

catch (system.exception ee)}

webservice中web.config中沒有開啟get和post請求

success: function (dt) }

這種請求方式是無法成功的(如果開啟了,當然會請求成功)

配置檔案中如果只開啟了httpsoap1.1和httpsoap1.2協議:

httpsoap1.1請求

引數(具體)

var urlpar;

urlpar = '<?xml version="1.0" encoding="utf-8"?>';

urlpar = urlpar + '';

urlpar = urlpar + '';

urlpar = urlpar + '<

students xmlns="">';

urlpar = urlpar + '<

startmonth>';

urlpar = urlpar + 值;

urlpar = urlpar + 'startmonth>';

urlpar = urlpar + '<

endmonth>';

urlpar = urlpar + 值;

urlpar = urlpar + 'endmonth>';

urlpar = urlpar + 'students>';

urlpar = urlpar + '';

urlpar = urlpar + '';

httpsoap1.2請求

引數(具體)

var urlpar;

urlpar = '<?xml version="1.0" encoding="utf-8"?>';

urlpar = urlpar + '';

urlpar = urlpar + '';

urlpar = urlpar + '';

urlpar = urlpar + '';

urlpar = urlpar + 值;

urlpar = urlpar + 'startmonth>';

urlpar = urlpar + '';

urlpar = urlpar + 值;

urlpar = urlpar + 'endmonth>';

urlpar = urlpar + 'students>';

urlpar = urlpar + 'soap12:body>';

urlpar = urlpar + 'soap12:envelope>';

傳送ajax請求

success: function (dt) }

此方法不僅可以請求asmx還可以請求php、ashx、aspx。。。。。等

如有錯誤請指正

Ajax跨域請求

一 什麼是跨域請求 網域名稱它由http 協議 www 子網域名稱 baidu 主網域名稱 以及8080 埠號 組成,當另乙個網域名稱與其中任意一項對應不等的話,那麼我們說兩個網域名稱就是跨域的。如的頁面上我們要請求資料到上去,那麼就說這種請求是跨域請求。二 為什麼要講跨域請求 因為在一般的請求條件...

Ajax 跨域請求

隨筆 71 文章 0 客戶端js 服務端 1 string callbackfunname context.request callbackparam 2 context.response.write callbackfunname ps 客戶端的jsonp引數是用來通過url傳參,傳遞jsonpc...

ajax跨域請求

通過xhr實現ajax通訊的乙個主要的限制,於跨域安全策略。在預設情況下,xhr物件只能訪問與包含它的頁面位於同乙個域中的資源。這樣可以防止一些惡意行為。所謂的域,可以理解成網域名稱,如果這個xhr所在的頁面與請求的介面是在同乙個應用下面,那麼就不存在跨域的問題,它們是在同乙個域下面,例如這裡都在本...