Мне нужно отправить запрос на действие/Главная/Старт
Набор ответов в элементе id 'js_script'.
Я не могу найти, как это сделать.
Если все, что вы хотите, является базовым запросом, то вы можете сделать это легко, без каких-либо библиотек с функциями найти здесь http://www.quirksmode.org/js/xmlhttp.html
function sendRequest(url,callback,postData) {
var req = createXMLHTTPObject();
if (!req) return;
var method = (postData) ? "POST" : "GET";
req.open(method,url,true);
req.setRequestHeader('User-Agent','XMLHTTP/1.0');
if (postData)
req.setRequestHeader('Content-type','application/x-www-form-urlencoded');
req.onreadystatechange = function () {
if (req.readyState != 4) return;
if (req.status != 200 && req.status != 304) {
// alert('HTTP error ' + req.status);
return;
}
callback(req);
}
if (req.readyState == 4) return;
req.send(postData);
}
var XMLHttpFactories = [
function () {return new XMLHttpRequest()},
function () {return new ActiveXObject("Msxml2.XMLHTTP")},
function () {return new ActiveXObject("Msxml3.XMLHTTP")},
function () {return new ActiveXObject("Microsoft.XMLHTTP")}
];
function createXMLHTTPObject() {
var xmlhttp = false;
for (var i=0;i<XMLHttpFactories.length;i++) {
try {
xmlhttp = XMLHttpFactories[i]();
}
catch (e) {
continue;
}
break;
}
return xmlhttp;
}
Мне нужно угадать, что вы имеете в виду, но в основном вы используете объект XMLHttpRequest
для выполнения ajax-запросов. Это инновация Microsoft, которую другие браузеры приняли и которая сейчас находится в процессе стандартизации. В современных браузерах это выглядит так:
function sendRequest() {
var request = new XMLHttpRequest();
request.open('GET', '/Home/Start', false);
request.onreadystatechange = handleStateChange;
request.send(null);
function handleStateChange() {
if (request.readyState === 4) {
// The request is complete; did it work?
if (this.status >= 200 && this.status < 300) {
// Yes, you can use the data on request.responseText
// or (for requests with XML replies) request.responseXML
// In our case, let say we want to put all of the text
// into the element with the 'id' "js_script":
var elm = document.getElementById("js_script");
elm.innerHTML = request.responseText;
}
}
}
}
Это явно упрощается. В старых браузерах вам нужно сделать пару проверок при создании объекта (например, new XMLHttpRequest
не работает на IE7, но есть способы сделать это на IE7.)
Сложности, связанные с созданием объекта в старых браузерах, являются одной из многих причин, по которым я рекомендую использовать любые подходящие библиотеки JavaScript, такие как jQuery, Prototype, YUI, Closure или любой другой. Они сглаживают различия браузера для вас, добавляют множество полезных функций и позволяют сосредоточиться на выполнении вашей конкретной задачи, а не беспокоиться о (скажем) кодах состояния HTTP. Это не значит, что нет времени и места для работы без библиотек - конечно, есть - так обычно, можно более продуктивно строить работу других, чем самостоятельно.