Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.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
如何将jquery请求从我的服务器直接转发到另一个服务器?_Jquery_Asp.net_Asp.net Mvc - Fatal编程技术网

如何将jquery请求从我的服务器直接转发到另一个服务器?

如何将jquery请求从我的服务器直接转发到另一个服务器?,jquery,asp.net,asp.net-mvc,Jquery,Asp.net,Asp.net Mvc,所以我有一个web客户机,ShazamClient,我想从中使用jQuery从远程web api ShazamService获取数据并将数据发布到该api。起初,我试图在jQuery中直接发布到ShazamService,但出现了与CORS相关的错误,而这在ShazamService上是不启用的。因此,为了解决这个问题,我想直接将请求从ShazamClient的控制器或ApiController转发到ShazamService中相应的方法调用。所以我基本上想要: public class Sha

所以我有一个web客户机,ShazamClient,我想从中使用jQuery从远程web api ShazamService获取数据并将数据发布到该api。起初,我试图在jQuery中直接发布到ShazamService,但出现了与CORS相关的错误,而这在ShazamService上是不启用的。因此,为了解决这个问题,我想直接将请求从ShazamClient的
控制器
ApiController
转发到ShazamService中相应的方法调用。所以我基本上想要:

public class ShazamClientController : ApiController // or Controller
{
    public string Upload()
    {
        return Request.Forward(@"https:\\shazamservice.com\api\upload");
    }
}
我在网上找到的大部分内容都与重定向等有关-有没有简单的方法可以做到这一点?

您可以使用并重用发送给控制器的内容来向服务发出请求。

好吧,如果您使用“代理”,这里有一个关于
WebAPI

HTML/网页:

<h1 id="dataTarget"></h1>

<script>
....
//Because Web API wants it's own "keyless" format for [FromBody] data (=value)
var _data = { "": "data foo" };

$.post("api/values", _data, function(d) {
    console.log(d);
    $("#dataTarget").text(d.foo + ' ' + d.bar); 
 });

</script>
WebAPI的“魔力”:


Hth…

ShazamService是否支持jsonp?我读过jsonp只支持GET(可能是过时的信息?),无论哪种方式,我发现它都很麻烦——HTTP错误不会触发jQuery“失败”处理程序,甚至不会触发“完整”处理程序;是的,我并不是说jsonp是一个好的选择,只是把它扔出去看看它是否满足了你的需要。这是一个好的建议,但在我的情况下似乎并不正确
// POST api/values
public async Task<JObject> Post([FromBody]string value)
{           
    using (var client = new HttpClient())
    {
        /*
         * See http://www.jsontest.com/#echo for usage
         *  which serves as the "other" service you are "proxying"
         *
         *  Echoed values will be used in front end html
         */
        return JObject.Parse(await client.GetStringAsync("http://echo.jsontest.com/foo/hello/bar/world"));
    }
}