簡體   English   中英

如何在ASP.NET MVC 5中使用Ajax調用Web服務

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM