0

我使用此代码,当我将 volusion api 下载到“teak_test.xml”时它可以工作,这是代码:

$(document).ready(function(){
            $.ajax({
                type: "GET",
                url: "teak_test.xml",
                success: function(data) {
                $(data).find('Products').each(function(){
                    var Col0 = $(this).find('ProductCode').text();
                    // check if Col0 = SABAH
                    if (Col0 === $( "span.product_code" ).text()) { 
                       var Col1 = $(this).find('Fixed_ShippingCost').text();
                        $('<div><span class="product_code_title">Fixed Shiping Cost:</span><span id="inside_qty_instock">&nbsp;$'+Col1+'</span></div>').appendTo('td#pricebox_top div.qty_in_stock');
                    }
                });
                 }
            });
        });

但如果我直接从外部 url 调用 api,它就不起作用:

http://www.mywebsite.com/net/WebService.aspx?Login=admin@email.com&EncryptedPassword=123456&EDI_Name=Generic\Products&SELECT_Columns=p.ProductCode,pe.Fixed_ShippingCost

我从 volusion 找到了文章,代码是:

var api_url = "http://www.mydomain.com/net/WebService.aspx?
Login=Admin@mydomain.com&EncryptedPassword=1234567890QWERTYUIOPASDFGHJKL&EDI_
Name=Generic\Customers&SELECT_Columns=CustomerID,
AccessKey&WHERE_Column=AccessKey&WHERE_Value="C"";
var xmlhttp;
var api_response = "";
xmlhttp = new ActiveXObject("MSXML2.ServerXMLHTTP");
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4) {
if (xmlhttp.status == 200) {
api_response = xmlhttp.responseText;
} else {
//unable to connect
}
} else {
//connecting...
}
}
xmlhttp.send();

有人知道如何实施吗?我对这东西很陌生

谢谢

4

2 回答 2

0

算了,我已经猜到了!

它基本上很简单:

这是代码:

(function($){
$.ajax({url: "http://www.mydomain.com/net/WebService.aspx?Login=admin@email.com&EncryptedPassword=12345678910buchofnumberthatappear&EDI_Name=Generic\\Products&SELECT_Columns=p.ProductCode,pe.Fixed_ShippingCost&WHERE_Column=p.ProductCode&WHERE_Value=" + $("span.product_code").text(), success: function(data){
        var output = $(data);
        var fixed_shippingcost = output.find("Fixed_ShippingCost").text();
        $('<div id="FSC"><span class="product_code_title">Fixed ShipingCost:</span><span id="inside_qty_instock">&nbsp;$'+fixed_shippingcost+'</span></div>').appendTo('td#pricebox_top div.qty_in_stock');
    }
});})(jQuery);

关键是\\在原始 api 链接的“通用”之后添加:

http://www.mywebsite.com/net/WebService.aspx?Login=admin@email.com&EncryptedPassword=12345678910buchofnumberthatappear&EDI_Name=Generic\Products&SELECT_Columns=p.ProductCode,pe.Fixed_ShippingCost

到这个链接:

http://www.mydomain.com/net/WebService.aspx?Login=admin@email.com&EncryptedPassword=12345678910buchofnumberthatappear&EDI_Name=Generic\\Products&SELECT_Columns=p.ProductCode,pe.Fixed_ShippingCost&WHERE_Column=p.ProductCode&WHERE_Value=" + $("span.product_code").text()

希望这可以帮助有同样问题的人从 Volusion 获取 xml API

于 2014-01-09T07:23:01.420 回答
0

永远不要在客户端编码中使用您的 Volusion API 凭证。如果你这样做,你正在创造一个巨大的安全问题。

于 2014-07-28T00:10:31.000 回答