2011-10-10 114 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