2010-08-03 4 views
0
$(document).ready(function() { 
    function ajaxselectrss(rssurlvar) { 
    var ajaxRequest; // The variable that makes Ajax possible! 

try{ 
    // Opera 8.0+, Firefox, Safari 
    ajaxRequest = new XMLHttpRequest(); 
} catch (e){ 
    // Internet Explorer Browsers 
    try{ 
    ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP"); 
    } catch (e) { 
    try{ 
    ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP"); 
    } catch (e){ 
    // Something went wrong 
    alert("Your browser broke!"); 
    return false; 
    } 
    } 
} 
// Create a function that will receive data sent from the server 
ajaxRequest.onreadystatechange = function(){ 
    if(ajaxRequest.readyState == 4){ 

    var ajaxDisplay = document.getElementById('news'); 
    ajaxDisplay.innerHTML = ajaxRequest.responseText; 
    } 
} 



//var rssurlvar = $(this).attr("title"); 
var queryString = "rurl=" + rssurlvar; 
var urltofile = "rssget.php"; 
ajaxRequest.open("POST", urltofile, true); 
ajaxRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
ajaxRequest.setRequestHeader("Content-length", queryString.length); 
ajaxRequest.setRequestHeader("Connection", "close"); 
ajaxRequest.send(queryString); 

} 
    $(".rshownews").click(function() { 
     window.setInterval(function() {ajaxselectrss($(this).attr("title"))}, 1000); 
    }); 
}); 

Запрос POST «не определен» (Firebug).AJAX не отправляет запрос POST

+1

Это '$ (документ) .ready (функция() {' выглядит как JQuery, это JQuery? Если да, то почему бы не использовать функции JQuery Ajax? –

ответ

3

Вы должны использовать $.ajax - он будет стандартизировать всю вещь XmlHTTPRequest в браузерах.

$.ajax({ 
    type: "POST", 
    url: "rssget.php", 
    data: queryString, 
    success: function(data) { 
     $('#news').html(data); 
    } 
}); 

(И, кстати, если вы setInterval в обработчике щелчка, вы начнете новый периодический вызов на ajaxselectrss функции каждый раз, когда нажата кнопка.)

Кроме того, ваш контекст изменился из-за к функции обертки. Попробуйте изменить обработчик щелчка так:

$(".rshownews").click(function() { 
    var _this = this; 
    window.setInterval(function() {ajaxselectrss($(_this).attr("title"))}, 1000); 
}); 
+0

Но с $ .ajax то же самое – lam3r4370

+1

Что такое ошибка – sje397

+0

функция ajaxselectrss (rssurlvar) { $ .ajax ({ типа:.? "POST", URL: "rssget.php", данные: "rurl =" + rssurlvar, успех: функция (msg) { предупреждение («Сохраненные данные:» + msg); } }); } – lam3r4370

1

Поскольку вы, кажется, так или иначе использовать JQuery ($ (документ) .ready), вы можете использовать это обертка для упрощения Ajax-запросов.

http://api.jquery.com/jQuery.post

Смежные вопросы