2011-10-10 113 views
-2

这是我的代码,它返回一个解析器错误,并失败。jquery ajax解析器错误?

$.ajaxSetup({ 
    type: 'GET', 
    url: 'http://www.example.com/ajax', 
    dataType: 'json' 
}); 

$('#addHotlink').click(function() { 
    $('body').after('<div id="lightBox" style="height: ' + htmlHeight + 'px;"><div><h3>Choose a name for your hotlink:<img id="lightBoxClose" src="http://www.example.com/images/closedAccordion.png" height="17" width="17" alt="" title="Close this box" /></h3><form id="addHotlinkForm" action="#" method="post" autocomplete="off"><input id="hotlinkName" type="text" maxlength="15" /><input class="submit" type="submit" value="Add Hotlink" /></form></div></div>'); 
    $('#lightBox').hide().fadeIn('fast'); 
    return false; 
}); 

$('#addHotlinkForm').live('submit', function(event) { 
    event.preventDefault(); 

    var pageURL = window.location.href; 
    var hotlinkName = $('#hotlinkName').val(); 

    if (hotlinkName.length > 0) { 
    $.ajax({ 
     data: { 
     hotlinkName: hotlinkName, 
     hotlinkURL: pageURL 
     }, 
     success: function() { 

     alert('Your hotlink ' + hotlinkName + ' has been inserted to the url: ' + pageURL); 
     }, 
     error: function (ajaxOptions, thrownError) { 

     alert(thrownError); 
     alert('Var hotlinkName: ' + hotlinkName + ' Var hotlinkURL: ' + pageURL); 
     } 
    }); 
    } 
}); 

我得到一个解析错误,当它试图执行?虽然在误差函数值返回为:

hotlinkName:文本输入框,

hotlinkURL:当前网页的地址(http://www.example.com/home)

为什么这不起作用?我曾尝试将类型更改为POST,但仍然无效?

这是我正在尝试做的一个小提琴,但当然它失败了,因为它没有链接到任何ajax表。

http://jsfiddle.net/novactown/QsDVe/

+0

您是否试图使用'.ajax()'连接到不同的域?这将被阻止,以避免跨站点脚本攻击,除非用户的浏览器明确允许它。 – Blazemonger

+0

使用类似Firebug或开发工具的东西,获取返回的JSON的副本,并通过jsonlint.com发送它以查明错误是什么。更重要的是:你没有对JSON做任何事情,所以为什么要检索它?如果您只需要成功回调,则不需要检索类型'json'。 –

+1

-1你已经问过这个问题:http://stackoverflow.com/questions/7708602/jquery-ajax-json-and-sending-over-window-location-href – AlienWebguy

回答

1

它的工作对我来说,如果你正在使用的jsfiddle来测试你的脚本ajaxsetup更改为以下

$.ajaxSetup({ 

    type: 'GET', 
     url: '/echo/json/', 
    dataType: 'json' 
}); 

我已经创建this:一个简单的环境中使用,以测试基于AJAX的JavaScript JQuery在jsfiddle。您可以结账jsfiddle documentation了解更多信息。

+0

如果你正在做一个Ajax调用不同的网站,那么你将不得不使用jsonp作为@ mblase75的评论 – frictionlesspulley