2013-07-29 18 views
0

發出此錯誤,同時進行跨域ajax請求。AJAX調用錯誤:錯誤:NetworkError:DOM異常19

錯誤:NetworkError:DOM異常19

這個請大家幫忙。堅持真正的壞:(

+0

你使用什麼瀏覽器?例如,Chrome在跨域中的策略存在問題。 – Alesanco

+0

我在Chrome中遇到了這個問題。但似乎在Firefox中也存在同樣的問題 – Waseem

+0

正計劃將它切換到JSONP而不是ajax。這會幫助我嗎?因爲在Mozilla FF中它說 **「NetworkError:403 Forbidden」** – Waseem

回答

0

DOM異常19指的是「網絡錯誤」。這就是你在你的可用Ajax調用聯繫URL?

跨域請求是可能的,如果服務器支持它!讓之前在實際的GET/POST調用中,瀏覽器會向服務器發出OPTIONS調用,以檢查它是否支持跨域請求。檢查您聯繫的服務器是否支持跨域請求。 有關跨域請求的更多詳細信息,請參閱本文這是非常有用的:Using CORS

1

一個常見的錯誤是發送一個HTTPS請求在一個期待http連接的服務器上。

1

要獲得跨域AJAX調用的工作,我已經使用PHP的服務器上...

getRemoteUrl.php

<?php 
if (preg_match("/^[();[]{}]+$/", $_GET['url'])) { 
    //Something bad 
} else { 
    $ctx = stream_context_create(array('http' => array('timeout' => 10))); 

    if (!(@$contents = file_get_contents($_GET['url'], 0, $ctx))) { 
    //fail 
    } else { 
    //success 
    echo $contents; 
    } 
} 
?> 

然後調用PHP文件,並使用輸出,如果你直接呼叫該網站。

function GetXmlHttpObject() { 
    if (window.XMLHttpRequest) { 
    // code for IE7+, Firefox, Chrome, Opera, Safari 
    return new XMLHttpRequest(); 
    } else if (window.ActiveXObject) { 
    // code for IE6, IE5 
    return new ActiveXObject("Microsoft.XMLHTTP"); 
    } else { 
    return null; 
    } 
} 

var xmlhttp = GetXmlHttpObject(); 
if (xmlhttp === null) { 
    //Your browser does not support XMLHTTP! 
} else { 
    xmlhttp.open("GET", "getRemoteUrl.php" + "?url=someRemoteUrl", false); 
    xmlhttp.send(); 
    var webpage = xmlhttp.responseText; 
    //do something with webpage 
} 

我會建議使用異步,而不是;爲了簡潔,我使用了同步。 如果PHP不是首選或可用,則可以使用其他服務器端語言完成。

0

避免你可以使用Korz服務器的跨域策略,只需添加

<script src="//tomodo-tools.s3.amazonaws.com/tomodo.korz-0.5.js"></script> 

<head>和所有跨域請求將througth tomodo.me所以他們Access-Control-Allow-Origin header是「*」進行路由。

var req = new XMLHttpRequest(); 
req.open("GET", url, false) // false denotes synchronous call 
req.send(); 

做它異步(我想反正)沒有給我的錯誤:

+0

它不起作用!你知道有沒有其他服務提供這種服務? – user1788736

1

我在Chrome使用同步請求時得到這個錯誤。

然後我發現服務器重寫了URL。如果我使用重寫的URL,我沒有得到錯誤。可能是Chrome的一個bug,因爲Safari處理同步,非重寫的情況就好了。

不知道我是否會報告它,因爲反正XMLHttpRequests已經被棄用了。