2016-07-07 62 views
2

我有一个AJAX请求,什么都不做,我不知道为什么。 它不给我任何error.my代码:parseInt值没有错误

$("#idButton").click(function(){ 
    $.ajax({ 
      type: "GET", 
      url: "https://api.fixer.io/latest?base=EUR", 
      data: {}, 
      success: function(data) { 
        $("#idUsd").val(parseInt(data['rates']['USD']) * 
        parseInt($("#idEur").val())); //I think the error is here 
      }, 

      error: function(x, e) { console.log(e); } 
    }); 
}); 

谁能帮助我?

编辑:

screenshot

回答

0

你的AJAX请求是click处理器中。我相信你已经定义了click处理程序,然后再将#idButton添加到HTML中。当处理程序被定义时,您需要确保该元素已经存在,可能将其放入$(function() {})或使用.on(),这将在未来的元素创建中注册该处理程序。

案例1:

你有你的脑袋里一个script标签和定义#idButtonbody。在这种情况下,这代码应解决的问题:

$(function() { 
    $("#idButton").click(function(e) {/*Your handler*/}); 
}); 

情况2:创建并在运行时添加

#idButton。在这种情况下,

$('body).on('click', '#idButton', function(e) {/*Your handler*/}); 

应该解决问题。理想情况下,当您定义处理程序并且包含该按钮时,将body切换到树中已存在的最低节点选择器。

+0

好,我试图删除按钮,它给了我南 –

+0

所以这个问题必须在功能(数据) –

+0

@IrinaFarcau,你说:“我有一个AJAX请求,做什么和我不不知道为什么。“如果问题出现在成功函数中,这是AJAX请求的回调函数,那么声明是错误的,因为请求已发送到响应的服务器。 –

0

出于安全原因,AJAX不支持跨域调用。

建立一个代理,所以你可以在你的域名上调用一个url。 在PHP中,你可以创建一个文件proxy.php:

<?php 
    readfile('https://api.fixer.io/latest?base=EUR'); 
    exit; 

然后使用这个新网址:,你需要检查data

url: "proxy.php", 

希望帮助

1

在成功与$("#idEur").val()undefinednull,那么你开始你的实施。

$("#idButton").click(function(){ 
    $.ajax({ 
      type: "GET", 
      url: "https://api.fixer.io/latest?base=EUR", 
      data: {}, 
      success: function(data) { 
       if((data != undefined) && (data != null) && 
         (data['rates'] != undefined) && (data['rates'] != null) && 
        (data['rates']['USD'] != undefined) && (data['rates']['USD'] != null) && 
        (data['rates']['USD'] != "") && ($("#idEur").val() != undefined) && 
        ($("#idEur").val() != null) && ($("#idEur").val() != "")) { 

        $("#idUsd").val(parseInt(data['rates']['USD']) * 
        parseInt($("#idEur").val())); //I think the error is here 
       } 
      }, 

      error: function(x, e) { console.log(e); } 
    }); 
}); 
+0

它不起作用,它什么都不做。 –

+0

@IrinaFarcau - 使用Inspect Elements检查ajax调用是否正在返回**数据**和** 200响应代码**。 –

+0

Yess,但如何解决它? 200响应代码也首先返回。 –