在AJAX调用中编辑URL

时间:2016-08-12 18:05:04

标签: javascript html ajax

我正在尝试编辑一个我在AJAX调用中发送的URL。

function saveEdit() {
  // logic for updating an existing item
                $.ajax({
                url: "https://localhost/api/1/databases/geolocation/collections/boom/"+globalData._id.$oid+"?apiKey=veTqID_gkb74tG-yL4MGcS1p2RRBP1Pf",
                type: "PUT",
                data: JSON.stringify({  Item:Item.value , Location: Location.value , Category: Category.value , Description : Description.value , Quantity: Quantity.value}),
                contentType: "application/json"
            });

在上面的代码中我想替换" localhost"来自IP,当网站是UP。我将从配置文件中读取IP。

尝试连接字符串,没有用。有什么建议吗?

预期是:

https://x.x.x.x/api/1/databases/geolocation/collections/boom/

3 个答案:

答案 0 :(得分:0)

试试这个:

function saveEdit() {
    var useLocalHost = false; // flag to taest if you want to do the replace or use the localhost parameter
    var localhostUrl = "https://localhost/api/1/databases/geolocation/collections/boom/"+globalData._id.$oid+"?apiKey=veTqID_gkb74tG-yL4MGcS1p2RRBP1Pf";
    var url = useLocalHost ? localhostUrl : localhostUrl.replace("localhost","x.x.x.x");

    // logic for updating an existing item
    $.ajax({
        url: url,
        type: "PUT",
        data: JSON.stringify({  Item:Item.value , Location: Location.value , Category: Category.value , Description : Description.value , Quantity: Quantity.value}),
        contentType: "application/json"
    });
}

答案 1 :(得分:0)

尝试String.prototype.replace()

!!!
%title Hello
%link{:rel => 'stylesheet', :href => url('style')}

答案 2 :(得分:0)

首先,如何使用参数:

function saveEdit(host, key) {
  // logic for updating an existing item
                $.ajax({
                url: "https://" + host + "/api/1/databases/geolocation/collections/boom/"
                     + globalData._id.$oid + "?apiKey=" + key,
                type: "PUT",
                data: JSON.stringify({  Item:Item.value ,
                                        Location: Location.value ,
                                        Category: Category.value ,
                                        Description : Description.value ,
                                        Quantity: Quantity.value}),
                contentType: "application/json"
            });

但是,现在你已经推出了将saveEdit函数中的host移到调用者的位置。

如果主机与提供简单易用的页面的主机相同,那么它就是  saveEdit( window.location.hostname, myApiKey )

如果它是某些其他主机,从你说的配置文件(你的服务器上的配置文件在哪里?),你必须以某种方式得到javascript调用者。 一种方法是将其附加到data-属性,可能在按钮或父div或甚至身体上 <div id="thing_container" data-api-host="$configured_host">
使用$var${var}或服务器端堆栈使用的任何内容。

你可以用

这样的东西来搞定
var elem = document.getElementById('thing_container');
var api_host = elem.getAttribute('data-api-host');
saveEdit( api_host, myApiKey );