jquery ajax调用导致浏览器错误

时间:2012-07-04 13:09:33

标签: javascript jquery ajax

HTML code:

<div class="clearfix" style="color: #555" style="display:block; ">
<input type="text" id="id_site" placeholder="nom-du-site" style="width: 245px;  font-size: 16px;">
<div style="float: right; color: black; font-size: 16px; margin-top: 10px; margin-left: -6px">.domain.com</div>
</div>
<br>
<div class="spacing">
<a href="" id="envoyer" class="bouton">Envoyer</a>

这是带有Query Ajax调用的javascript代码:

    $("#envoyer").click(function (e) {

        // checks user input:
        nom = document.getElementById('id_nom');
        email = document.getElementById('id_email');
        site = document.getElementById('id_site');

        $.ajax({
            url: 'http://localhost/website/script.php',
            dataType: 'jsonp',
            data: {
                nom: nom,
                email: email,
                site: site
            },
            success: function (json) {
                DataSeries = json;
            },
            error: branchAjaxFailed
        });

});

这是script.php(目前):

<?
if (isset($_GET["nom"])) $nom = $_GET["nom"];
if (isset($_GET["email"])) $email = $_GET["email"];
if (isset($_GET["site"])) $site = $_GET["site"];
?>
  • Chrome无限期冻结。如果我在这个Ajax调用之后添加一个调试中断,Chrome就不会在'inspect element'工具中找到它。
  • IE给了我“第2行的堆栈溢出”错误。

任何人都可以看到问题所在吗?

2 个答案:

答案 0 :(得分:0)

我在处理JSONP时经常使用JQuery getJSON,你的服务器是否设置为处理JSONP?例如,如果我正在调用Flickr API,我可能会有类似下面的内容(未经测试):

$.getJSON("http://api.flickr.com/services/rest/?jsoncallback=?",
{
  tags : 'Apple',
  tagmode : "any",
  method : "flickr.photos.search",
},
function(data) {
  $.each(data.photos.photo, function(i,item){
    var src = "http://farm"+ item.farm +".static.flickr.com/"+ item.server +"/"+ item.id +"_"+ item.secret +"_m.jpg";
    var image = $('<img class="flickr" alt="' + item.title + '" />');
    image.load(function() {
      $(this).animate({ 'opacity':1 }, { duration:300, queue:false });
    });
    $('#images').append($('<a href="'+srcLarge+'" rel="prettyPhoto[location]" />').append(image));
    image.attr('src',src);
  });
 });

答案 1 :(得分:0)

在尝试了几件事后,我发现了“有罪”的部分:以下的html代码导致了问题:

<a href="" id="envoyer" class="bouton">Envoyer</a>

删除href可解决问题:

<a id="envoyer" class="bouton">Envoyer</a>