我正在尝试在http://rate-exchange.appspot.com/currency使用该服务,但我得到的只是Access-Control-Allow-Origin错误。
了解这是一个服务器问题,http://rate-exchange.appspot.com/currency不是我的服务,我不知道如何解决这个问题。
使用这样的服务:
$.getJSON("http://rate-exchange.appspot.com/currency", { "from": Currency.From, "to": Currency.To }, function (result) {
if (!result.err) {
Currency.Rate = result.rate;
$("#footer-output").text("All sales in " + Currency.To + " including VAT");
}
else {
$("#footer-output").text("All sales in local currency including VAT");
}
});
现在尝试直接在浏览器中获取此数据不是问题。有什么我可以做的,或者这只能在服务器上修复吗?
答案 0 :(得分:2)
以下内容有效。我冒昧地在代码中添加货币对象。那部分显然是你在其他地方定义的。
Plunkr:http://beta.plnkr.co/aMVPVE9kUPPcsD0Ma5s3
代码:
$(function(){
Currency = {};
Currency.From = "USD";
Currency.To = "PEN";
Currency.Rate= 0;
$.getJSON("http://rate-exchange.appspot.com/currency?callback=?", { "from": Currency.From, "to": Currency.To }, function (result) {
if (!result.err) {
Currency.Rate = result.rate;
$("#footer-output").text("All sales in " + Currency.To + " including VAT");
}
else {
$("#footer-output").text("All sales in local currency including VAT");
}
});
添加回调=?到url和jquery将发出一个jsonp请求。以下是文档中的部分(中途):http://api.jquery.com/jQuery.getJSON/
JSONP
如果网址包含字符串“callback =?” (或类似的,由服务器端API定义),请求被视为JSONP。有关更多详细信息,请参阅$ .ajax()中有关jsonp数据类型的讨论。
答案 1 :(得分:1)
使用JSONP:
Currency = {};
Currency.From = "USD";
Currency.To = "PEN";
Currency.Rate= 0;
$.get("http://rate-exchange.appspot.com/currency", { "from": Currency.From, "to": Currency.To }, function (result) {
if (!result.err) {
Currency.Rate = result.rate;
$("#footer-output").text("All sales in " + Currency.To + " including VAT");
}
else {
$("#footer-output").text("All sales in local currency including VAT");
}
}, 'jsonp');