2012-09-25 109 views
0

我想從一個簡單的java腳本函數調用我們的API服務器。下面是我使用的代碼:AJAX CORS調用不起作用PHP

function jack() { 
      //fullURL defined here 
    debugger; 
    var xhr = new XMLHttpRequest(); 
    var onLoadHandler = function(event) { 
     /* do something with the response */ 
      debugger; 
    } 
    var onErrorHandler = function(event) { 
      /* do something with the response */ 
       debugger; 
     } 
    xhr.open('GET',fullURL); 
    xhr.onload = onLoadHandler; 
    xhr.onerror = onErrorHandler; 
    xhr.send(); 
} 

因爲頁面說我可以不加載完整fullURL:「您的文章包含了無效的外部」這樣我就可以確認它開始使用HTTP和去/ API/PHPINFO .php

我打開瀏覽器到這個頁面並啓動Firebug。在Firebug控制檯中,我打電話給jack(),並在var onErrorHandler = function(event)中結束。螢火蟲告訴我事件是「錯誤」,但我需要知道什麼錯誤?如果我去我的PHP服務器,我可以在日誌中看到通話已完成,服務器200代碼已返回? Firebug還顯示「HTML」選項卡返回空白,但呼叫fullURL確實會將信息頁返回給我(在瀏覽器中)

請幫忙。

+0

哪裏的fullURL是從哪裏來的? – David

+0

什麼是返回? XML? JSON?純文本? 另外,是否有你沒有使用jQuery的原因?這很容易 –

+0

fullURL是myDomain:myPort/api/phpInfo.php Stackoverflow不希望我粘貼完整的網址 - 非常令人沮喪! –

回答

0

這對我有效! 使用Javascript:

var httpReq = getXMLHTTPRequest();

function makeCall(){var myurl = 「http://111.111.111.111:11111/api/phpInfo.php」; myRand = parseInt(Math.random()* 999999999999999); var modurl = myurl +「?rand =」+ myRand; httpReq.open(「GET」,modurl,true); httpReq.onreadystatechange = useHttpResponse899; httpReq.send(); }

功能useHttpResponse899(){如果(httpReq.readyState == 4){ 如果(httpReq.status == 200){//完成所有處理與 獲得的值/響應這裏}}}

和PHPINFO PHP的服務器我有:

<?php 
header('Access-Control-Allow-Origin: *'); 
phpinfo(); 
?>