如何在Ajax调用期间处理主机名?

时间:2016-07-22 11:30:36

标签: javascript jquery html ajax asp.net-mvc

我正在进行ajax调用:

var hostUrl = location.hostname;
     $.getJSON(hostUrl + "/DataMatrix/ItemTypeList/" + $("#filter > option:selected").attr("value"),
                function (dataValue) {

这是我在网络标签中获得的内容:

http://localhost:50020/localhost/DataMatrix/ItemTypeList/5001

Localhost被附加在本地主机的顶部,但是在生产中它可以正常工作,因为url形成的是(xyz:host placeholder)。

 xyz/DataMatrix/ItemTypeList/5001

一旦我删除了主机网址,那么它在本地工作也很好,但在生产中失败了:

 $.getJSON("/DataMatrix/ItemTypeList/" + $("#filter > option:selected").attr("value"),
                    function (dataValue) {

如何在开发过程中处理此类场景,以便在将文件移交给部署团队时不必更改字符串。

1 个答案:

答案 0 :(得分:0)

只需删除前导" /"即:

$.getJSON("DataMatrix/ItemTypeList/" ...

这是因为浏览器会自动将URL解释为相对于当前主机(例如" http://localhost:50020/"或" https://myhost.com/"并将其添加到您声明的网址。

所以如果你把" DataMatrix / ItemTypeList"在" https://myhost.com"上部署您的网址时,ajax通话会自动拨打" https://myhost.com/DataMatrix/ItemTypeList"。