【发布时间】:2015-12-07 09:42:51
【问题描述】:
我正在使用 volusion 商店创建网站。我希望产品显示在产品页面上,为此我正在自定义代码。我已经创建了 volusion api,即标准导出,我只需要使用带有 ajax 的 api 获取产品详细信息到页面。那么我该如何实现呢?对于第一种类型,我创建了带有 .xml 扩展名的 api,例如, https:///dataport/dl/Generic/Products.xml 然后它显示数据,我也可以获取该数据,但对于第二种类型的 url,例如, http:///net/WebService.aspx?Login=&EncryptedPassword=&EDI_Name=Generic\Products&SELECT_Columns=p.ProductID,p.ProductName,pe.Photo_AltText,pe.Photo_SubText,pe.PhotoURL_Large,pe.PhotoURL_Small,pe.Price_SubText,pe .Price_SubText_Short,pe.ProductPrice,pe.ProductPrice_Name 我无法使用 ajax 获取该数据。虽然第一次使用这个 url 它会显示数据,但是当我刷新它时它不会显示。
下面我分享了我的代码,所以请查看它并帮助我解决这个问题,
<script>
$(document).ready(function(){
$.ajax({
type: "POST",
url: "http://<domainname.com>/net/WebService.aspx?Login=<username>&EncryptedPassword=<password>&EDI_Name=Generic\Products&SELECT_Columns=p.ProductID,p.ProductName,pe.Photo_AltText,pe.Photo_SubText,pe.PhotoURL_Large,pe.PhotoURL_Small,pe.Price_SubText,pe.Price_SubText_Short,pe.ProductPrice,pe.ProductPrice_Name",
dataType: "xml",
success: function(result) {
alert(result);
parseXml(data);
}
});
});
function parseXml(data) {
var id;
var code;
var name;
$(data).find('Products').each(function( ){
$(this).find("ProductCode").each(function() {
code = $(this).text();
});
$(this).find("ProductID").each(function(){
id = $(this).text();
});
$(this).find("ProductName").each(function(){
name = $(this).text();
});
$('.col-md-6').append(code +"<br />"+ id +"<br />"+ name);
});
}
</script>
<div id='getresult'>
Api code will refelect here
<div class="container">
<div class="row">
<div class="col-md-6"></div>
</div>
</div>
</div>
【问题讨论】:
-
永远不要在任何客户端代码中使用您的 Web 服务登录电子邮件地址和加密密码。如果你这样做,你不妨把它贴在这里,因为没有区别。您几乎是在向任何人提供您网站的免费通行证。不要这样做!
-
我没看到,谢谢指出。同样的,我给你举了一个通过JQuery使用你的API的例子,那是不安全的,我累得想不出为什么不说,所以我说我认为它不会起作用。如果您需要这些信息,如果您与我联系,我会告诉您,我将从我的答案中删除关于 j 查询的部分,因为它存在最终用户安全风险,并且不符合 PCI...但是如果您尝试解释如果它是产品页面上的产品信息,我可能会帮助你在没有 API 的情况下获取数据,更清楚你想要完成的事情......