如何知道客户端URL名称?

时间:2016-12-06 17:19:26

标签: c# asp.net-mvc asp.net-web-api

我已经创建了web-api来提供像pin-code,Bank IFSC Code等服务,来自我的网站http://www.ajaxserver.com

我的所有api都托管在我的网站上,我的所有客户端都使用我的网站访问。 web api代码是

    [Route("api/GetURLName/")]
    [HttpGet]
    public string GetURLName(HttpRequestMessage request)
    {
        return HttpContext.Current.Request.Url.AbsoluteUri ;
    }

我的一个客户网站名称为http://www.clientwebsite.online

客户端使用jquery来检索如下代码的信息。

     $('#btnTestCore').click(function () {
        $.ajax({
            url: 'http://ajaxserver.com/api/GetURLName/',
            dataType: 'json',
            type: 'GET',
            contentType: "application/json; charset=utf-8",
            success: function (data) {
                alert(data);
             },
            error: function (data) {
                alert('failed.');
            }
        });
    });

输出来了:

"http://ajaxserver.com/api/GetURLName/".

需要输出:

"http://clientwebsite.online/api/GetURLName/"

2 个答案:

答案 0 :(得分:1)

您可以将输出附加到AJAX请求中:

public class loggedTest {

@Test

@Test

@AfterMethod
    public void tearDown(messages screen, ITestResult result) {
        screen.screenshot(result);
}

然后,您必须在webAPI代码中读取该查询字符串

答案 1 :(得分:0)

就ajax请求的服务器而言; "网站"本身就是http://www.ajaxserver.com。您可以尝试查看引荐来源,但是......在所有浏览器和协议中都不可靠。

所以你有两个选择:

  • 让客户端API 告诉您主叫网站 - 请注意,客户端可能会欺骗客户端
  • 执行一些非平凡的代理(etc)配置,以便ajax服务器的站点在客户端域上响应

请注意,http://clientwebsite.online/api/GetURLName/ 实际网址,并且不会来自任何地方。