我的解決方案包含兩個asp.net MVC項目。一個將成爲一個網絡服務,另一個是一個普通的網站,從上述網絡服務獲取數據。從一個asp.net web應用程序發送JSON到另一個
我在我的網絡服務到家控制器下面的方法:
...
public JSONResult GetTeacher(){
return JSON(new {TeacherName = this.teacher.name });
}
我試圖訪問從其他Web應用這種方法(這將是該網站),利用此$就法:
$.ajax({
type: 'GET',
url: 'localhost:11370/Home/GetTeacher',
contentType: 'application/json; charset=utf-8',
success: function (response) {
alert(JSON.stringify(response));
$('#results').html('Welcome, ' + response.Name);
},
error: function (error) {
alert(JSON.stringify(error));
}
});
當我開始調試我的解決方案它開闢了兩個web開發服務器,同時在不同的端口。其結果是,當$就調用發生了,我得到一個彈出這個信息:
XMLHttpRequest cannot load http://localhost:11370/Home/GetTeacher.
Origin http://localhost:11510 is not allowed by Access-Control-Allow-Origin.
:
the page at localhost:11510 says:
"readystate":0, "responsetext": "" , "status":0, "statustext":"error"
當我嘗試在谷歌瀏覽器的控制檯,我得到了以下信息直接運行腳本
任何有關如何實際使用$ .ajax訪問方法的幫助將不勝感激。
編輯:我也試着製作一個簡單的html文件,看看如果我打電話給web服務會發生什麼。同樣的結果。另外,當我只輸入方法的url時,它可以正常工作並顯示教師的姓名。
感謝您的支持。我並不十分關心跨瀏覽器兼容性,因爲結果將用於iOS應用程序。 – user1851327
太棒了,那麼你可以使用['CORS'](http://en.wikipedia.org/wiki/Cross-origin_resource_sharing)。只需在'GetTeacher'控制器操作中設置'Access-Control-Allow-Origin'響應頭。 –