[英]how to call webservices using ajax in asp.net mvc 5
我正在asp.net mvc 5上工作,我想在其中使用Web api,並且使用jquery庫和下面的代碼。但是我沒有得到正確的答案。它總是失敗,但是我可以在瀏覽器中看到輸出。請幫我
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8" />
<script src="js/jquery-1.12.4.js"></script>
<script>
function ftoken() {
$.ajax({
url: 'http://charter724.ir/webservice/get_city_a.php?id=367&key=EmlyCD8JOWX22cL8IuNBju5K5',
// data: { },
type: 'GET',
dataType: 'json',
success: function (data) {
alert('success')
// alert(data.data)
//if (country_id != "" && zone_code != "" && duration != "" && birthday != "") {
// fPrice(data.token);
//}
//$.each(data, function (idx, result) {
// alert(result.data);
//})
},
error: function (x, y, z) {
alert('fail')
//alert(x.responseText);
//alert(z);
}
});
}
</script>
</head>
<body>
<input type="submit" name="name" onclick="ftoken();" value="Click " />
</body>
</html>
由於具有相同的來源政策,您將無法對此URL進行AJAX調用(是的,您可以將URL復制並粘貼到瀏覽器中並獲得響應,但不能從javascript訪問它)。
相同來源策略指出,僅當AJAX調用來自同一域時,才允許這樣做,您正在執行以下操作:
從http://localhost...
到http://charter724...
進行AJAX調用- 不允許這樣做
如果檢查瀏覽器控制台,將看到與以下錯誤類似的錯誤:
XMLHttpRequest無法加載http://charter724.ir/webservice/get_city_a.php?id=367&key=EmlyCD8JOWX22cL8IuNBju5K5 。 所請求的資源上沒有“ Access-Control-Allow-Origin”標頭。 因此,不允許訪問源' http:// localhost:10585 '
解決此問題的唯一方法是讓您聯系提供charter724
服務的公司,並要求他們啟用CORS(跨源資源共享),並允許來自您域的所有請求訪問其服務呼叫。
另外,您可以使用訪問服務調用HttpClient
,並得到了JSON response.If你真的想你甚至可能暴露你自己的一套跟外部服務和訪問來自Java腳本您的服務電話的服務:
public async System.Threading.Tasks.Task<ActionResult> Index()
{
string url = "http://charter724.ir/webservice/get_city_a.php?id=367&key=EmlyCD8JOWX22cL8IuNBju5K5";
System.Net.Http.HttpClient client = new System.Net.Http.HttpClient();
System.Net.Http.HttpResponseMessage response = await client.GetAsync(url);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
return View();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.