我有2臺服務器安裝了不同版本的.NET。服務器1具有.NET 1.1,服務器2具有.NET 3.5。將HTML/Javascript文件移動到不同的服務器會使其無法正常工作
我有.net 3.5服務器,以下工作正常的web服務:
function selectedDateTime(strDate, strHours, strMinutes) {
$.ajax({
url: 'webservice.asmx/GetCount',
type: 'POST',
data: '{strMeetingDate: "' + strDate + ' ' + strHours + ':' + strMinutes + ':00"}',
contentType: 'application/json; charset=utf-8',
dataType: 'jsonp',
success: function(department) {
console.log("success: " + department.d);
},
error: function(xhr, status, error) {
console.log("status message: " + status);
console.log("error message: " + error);
console.log("xhr message: " + xhr.responseText);
}
});
}
$("#btnTest").click(function(event) {
selectedDateTime("01/07/2013", "13", "00");
});
我想使用相同的腳本老.NET 1.1的服務器上也是如此,但無法移動webservice到舊服務器,因爲它是使用.NET 3.5編寫的,所以當我嘗試時,它只是給出了很多錯誤消息。
所以我想我應該只是移動HTML/JavaScript的上面到舊服務器,並告訴它指向Web服務在新服務器上:
我做到了,改變了以上一點點指向腳本新服務器:再次
http://server2/webservice.asmx/GetDayCount 401 (Unauthorized)
http://server2/webservice.asmx/GetDayCount Origin http://server1 is not allowed by Access-Control-Allow-Origin.
XMLHttpRequest cannot load http://server2/webservice.asmx/GetDayCount. Origin http://intranet is not allowed by Access-Control-Allow-Origin.
所以我改變了上面一個小的腳本,通過改變:
url: 'http://server2/webservice.asmx/GetCount',
它給了以下信息位到jsonp
,因爲我認爲jsonp允許跨域?
dataType: 'jsonp',
但是這並沒有解決任何問題,我現在越來越:
GET http://server2/webservice.asmx/GetCount?callback=jQuery…2680346152&{strMeetingDate:%20%2201/07/2013%2013:00:00%22}&_=1372680346153 500 (Internal Server Error)
任何人都知道爲什麼,這是行不通的,因爲互聯網服務和腳本在新的服務器時,都明確上工作文件一起在同一臺服務器上。