Post метод -> AJAX
Подскажите, пожалуйста, почему.
index.html:
[html]<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script src="http://domain.com/ajaxforms.js" type="text/javascript"
language="javascript"></script>
<script type="text/javascript" language="Javascript">
function focus(){ document.myform.domainname.focus(); }
</script>
</head>
<body onload="focus()">
<form action="java script:get(document.getElementById('myform'));"
name="myform" id="myform">
<input name="domainname" type="text" class="domainform"
onKeyUp="java script:get(this.parentNode);">
</form>
</body>
</html>
[/html]
ajaxforms.js:
Код:
var http_request = false;
function makeRequest(url, parameters) {
http_request = false;
if (window.XMLHttpRequest) {
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
http_request.overrideMimeType('text/html');
}
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject
("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) {
alert('Cannot create XMLHTTP instance');
return false;
}
http_request.onreadystatechange = alertContents;
http_request.open('GET', url + parameters, true);
http_request.send(null);
document.getElementById('myspan').innerHTML =
'<img src="/images/loading.gif">';
}
function alertContents() {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
//alert(http_request.responseText);
result = http_request.responseText;
document.getElementById('myspan').innerHTML = result;
} else {
//Вот тут вылетает если запускать index.html локально!
alert('There was a problem with the request.');
}
}
}
function get(obj) {
var getstr = "?";
for (i=0; i<obj.childNodes.length; i++) {
if (obj.childNodes.tagName == "INPUT") {
if (obj.childNodes.type == "text") {
getstr += obj.childNodes.name +
"=" + obj.childNodes.value + "&";
}
}
}
makeRequest('http://domain.com/get.php', getstr);
}
function makeRequest(url, parameters) {
http_request = false;
if (window.XMLHttpRequest) {
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
http_request.overrideMimeType('text/html');
}
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject
("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) {
alert('Cannot create XMLHTTP instance');
return false;
}
http_request.onreadystatechange = alertContents;
http_request.open('GET', url + parameters, true);
http_request.send(null);
document.getElementById('myspan').innerHTML =
'<img src="/images/loading.gif">';
}
function alertContents() {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
//alert(http_request.responseText);
result = http_request.responseText;
document.getElementById('myspan').innerHTML = result;
} else {
//Вот тут вылетает если запускать index.html локально!
alert('There was a problem with the request.');
}
}
}
function get(obj) {
var getstr = "?";
for (i=0; i<obj.childNodes.length; i++) {
if (obj.childNodes.tagName == "INPUT") {
if (obj.childNodes.type == "text") {
getstr += obj.childNodes.name +
"=" + obj.childNodes.value + "&";
}
}
}
makeRequest('http://domain.com/get.php', getstr);
}
Сам скрипт целиком: http://www.ajaxdomainsearch.com/blog/?download=AjaxDomainSearch
Цитата:
Подскажите, пожалуйста, почему
Кроссдоменные запросы запрещены по соображениям безопасности (если я правильно все понял).
Спасибо за помощь.
Цитата: Stalcer
Возможно ли заменить в локальном файле пост запрос на эквивалент JS без перезагрузки страницы? Если да, то где посмотреть.
Спасибо за помощь.
Спасибо за помощь.
Не знаю. Но можно на своем сайте написать прокси скрипт. Он будет HttpClient-ом бегать на чужой сайт и отдавать инфу сам.
!!! Только делать такое самовольно без согласия владельца чужого сайта противозаконно. !!!
Это можно сделать с помощью функции getJSON (JQUERY).
JSON (JQUERY):
http://docs.jquery.com/getjson
Собственно как загрузить результат запроса:
http://bob.pythonmac.org/archives/2005/12/05/remote-json-jsonp/
Кто-то может помочь с этим, за материальное вознаграждение?
Whois во вложении.