繁体   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