2012-05-10 113 views
1

我已經設置了一個運行本地Web服務器(用ExtJs編寫)的Apache服務器。我也phantom.js提出並監聽8080端口塞康本地服務器:Ajax從本地js腳本調用本地Phantom.js服務器

var server, service; 

server = require('webserver').create(); 

service = server.listen(8080, function (request, response) { 
    response.statusCode = 200; 
    response.write('<html><body>Hello!</body></html>'); 
    response.close(); 
}); 

現在我想從做我的應用程序到仿真服務器的Ajax請求:

Ext.Ajax.request({ 
    url: 'http://localhost:8080', 
    method: 'GET', 
    success: function(response){ 
     console.log('RESPONSE: ', response); 
    }, 
    filure: function(response){ 
     console.log('failure: ', response); 
    } 
}); 

但是當運行這個腳本時,我得到:

"NetworkError: 400 Bad Request - http://localhost:8080/?_dc=1336648497292"在控制檯中。此操作是否違反相同的原產地規定?或者是別的什麼 ?去localhost:8080顯示正確的響應,所以服務器正常運行。

+0

不同的端口將是一個與原點不同的域。 –

+0

*此操作是否違反相同的原產地規定?*是*或者是其他內容?*是的。服務器正在報告400錯誤請求錯誤。 – Quentin

+0

確定'錯誤請求'錯誤是否來自跨域問題? –

回答

2

你的html也在localhost上:8080?如果沒有(不同的端口=>不同的主機),那麼你有跨域Ajax問題。

+0

該死的,這麼想:/不,html是在80端口。 –

+0

嘗試如果這有助於:http://stackoverflow.com/questions/3076414/ways-to-circumvent-the-same-origin-policy – Gavriel

0

Ajax不適用於File protocals!它只適用於HTTP或HTTP。我找到了一個關於udemy的課程,導師說ajax不會在file:d://(path)protocals上工作。於是他將文件轉移到網絡服務器上,然後在ajax上解釋他的主題。

希望這有助於!