Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 来自用户浏览器的web请求_C#_Jquery_Asp.net Mvc_Ajax_Browser - Fatal编程技术网

C# 来自用户浏览器的web请求

C# 来自用户浏览器的web请求,c#,jquery,asp.net-mvc,ajax,browser,C#,Jquery,Asp.net Mvc,Ajax,Browser,是否可以将web请求从用户浏览器发送到另一个api,然后处理返回的结果 我正在尝试下面的ajax代码,但它不起作用,我想知道这是否可能,如果是,我如何实现它 $(document).ready(function() { $.ajax({ type: "GET", url: "http://api.ipinfodb.com/v2/ip_query.php?key=a9a2b0ec2c4724dd95286761777b09f1c8e

是否可以将web请求从用户浏览器发送到另一个api,然后处理返回的结果

我正在尝试下面的ajax代码,但它不起作用,我想知道这是否可能,如果是,我如何实现它

$(document).ready(function() {

        $.ajax({
            type: "GET",
            url: "http://api.ipinfodb.com/v2/ip_query.php?key=a9a2b0ec2c4724dd95286761777b09f1c8e82894de277a5b9d7175fa5275f2da&ip=&output=xml",
            dataType: "xml",
            success: function(xml) {
                alert("sucess");
                $(xml).find('Ip').each(function() {
                    var ip = $(this).find('Ip').text();
                    alert(ip);

                });
            }
        });

    });

因为您仅限于向自己的域发送AJAX请求。是一种常见的解决方法,但远程站点需要支持它。另一个解决方法是在您的域上封装一个服务器端脚本,它将充当您的域和远程域之间的桥梁,它将简单地委托从javascript发送给它的AJAX请求。

因为您仅限于向自己的域发送AJAX请求。是一种常见的解决方法,但远程站点需要支持它。另一个解决方法是在您的域上封装一个服务器端脚本,它将作为您的域和远程域之间的桥梁,它将简单地委托从javascript发送给它的AJAX请求。

应该是可能的,我也这样做了


但是您必须将页面放在同一台服务器上,您不能向另一台服务器发送请求,在这种情况下,您必须使用服务器上的代理来中继呼叫。

应该是可能的,我也这样做了


但是您必须将页面放在同一台服务器上,您不能将请求发送到另一台服务器,在这种情况下,您必须使用服务器上的代理来中继调用。

只需补充一点:如果您不能创建自己的JSONP代理,您可以使用为您创建该代理的代理。请注意,YQL将使用自己的元数据包装您的数据,除非有办法禁用该元数据

顺便说一下,您应该使用JSON输出,而不是API服务的XML输出。JSON是一种更轻量级的格式,因此更适合于Web

下面是一个功能完整的示例,您的API URL这次输出JSON和YQL:

var apiRequestUrl = "http://api.ipinfodb.com/v2/ip_query.php?key=a9a2b0ec2c4724dd95286761777b09f1c8e82894de277a5b9d7175fa5275f2da&ip=&output=json";
var yqlRequestUrl = "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20json%20where%20url%20%3D%20%22";
yqlRequestUrl += encodeURIComponent(apiRequestUrl);
yqlRequestUrl += "%22&format=json&callback=?";

$.getJSON(yqlRequestUrl,
    function(jsonData) {
        alert(jsonData.query.results.json.Ip);
    });

最后,本文可以派上用场:

只是为了补充前面说过的内容:如果您不能创建自己的JSONP代理,您可以使用它为您创建代理。请注意,YQL将使用自己的元数据包装您的数据,除非有办法禁用该元数据

顺便说一下,您应该使用JSON输出,而不是API服务的XML输出。JSON是一种更轻量级的格式,因此更适合于Web

下面是一个功能完整的示例,您的API URL这次输出JSON和YQL:

var apiRequestUrl = "http://api.ipinfodb.com/v2/ip_query.php?key=a9a2b0ec2c4724dd95286761777b09f1c8e82894de277a5b9d7175fa5275f2da&ip=&output=json";
var yqlRequestUrl = "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20json%20where%20url%20%3D%20%22";
yqlRequestUrl += encodeURIComponent(apiRequestUrl);
yqlRequestUrl += "%22&format=json&callback=?";

$.getJSON(yqlRequestUrl,
    function(jsonData) {
        alert(jsonData.query.results.json.Ip);
    });

最后,,这篇文章很方便:

实际上,如果你检查url,你会注意到ip=是空的,当用ip=null发出请求时,它会返回一个包含用户ip的xml,如果我从服务器发送请求,我将如何获取用户的ip…@3nigma:如果你从服务器发送请求,那么让服务器获取客户端的IP地址,并将其放入url。我想这会满足你的要求。@3nigma:作为一个新问题问这个问题,而不是试图在这里的评论中处理它,这可能是最明智的。实际上,如果你检查url,你会注意到ip=是空的,当使用ip=null发出请求时,它会返回一个包含用户ip的xml,如果我从服务器发送请求,我将如何获得用户的ip…@3nigma:如果你从服务器发送请求,那么让服务器获取客户端的IP地址并将其放入url。我想这会满足你的要求。@3nigma:作为一个新问题问这个问题,而不是试图在这里的评论中处理它,这可能是最明智的。您也可能会在这方面得到更多更好的帮助。tnx需要帮助,但通过这种方式,我得到的是发送请求的代理的ip,而不是客户端的ip…tnx需要帮助,但通过这种方式,我得到的是发送请求的代理的ip,而不是客户端的ip。。。