2014-10-29 149 views
1

我有以下腳本成功完成一個AJAX請求:輸出jQuery的AJAX響應

var input = $("#input").val(); 
$(".pure-button").click(function() { 
    $.ajax({ 
     type: "POST", 
     url: "script.php", 
     data: input 
    }).done(function(data) { 
     $("#output").val(data); 
    }); 
}); 

input包含字符串:

grant_type=refresh_token&client_id=abcd-efgh&client_secret=ijkl-mnop&refresh_token=qrst-uvwx 

然而,.done()似乎不正在工作。運行在Chrome擴展POSTMAN AJAX請求給我下面的輸出:

{"access_token":"123-456-789", 
"token_type":"bearer", 
"refresh_token":"987-654-321", 
"expires_in":14399} 

但我怎麼得到這個在#output顯示?這是一個空白的輸入字段。

編輯:

我想這可能是值得什麼,script.php包含以下代碼:如果echo file_get_contents()正在對返回什麼任何關係

<?php 
header("Content-type: application/xml"); 
echo file_get_contents("https://api.example.com"); 
?> 

?我的初始輸入字符串是XML格式嗎?發佈的數據是否到達其他服務器?

2日編輯:

更改我的.done()alert(output);給我一個包含彈出不過null。看起來像我的PHP腳本(解決Cross-Origin問題的一種顯而易見的方式)並沒有以我可以使用的方式返回請求。

var input = $("#input").val(); 
$(".pure-button").click(function() { 
    $.ajax({ 
     type: "POST", 
     url: "script.php", 
     data: input 
    }).done(function(output) { 
     alert(output); // returns "null" 
    }); 
}); 
+0

使用div標籤,而不是輸入字段,並使用$( 「#輸出」)HTML(數據)。 – Riad 2014-10-29 11:27:38

+0

是否可以在完成功能和檢查數據對象上設置斷點?例如有時候.net服務的數據存儲在data.d屬性 – alexsuslin 2014-10-29 11:49:04

回答

0

你需要傳遞一個成功創建函數調用時,如下圖所示:

請參閱該文檔:http://api.jquery.com/jquery.ajax/

+2

從jQuery 1.8開始,不推薦使用jqXHR.success(),jqXHR.error()和jqXHR.complete()回調。 – jesperlndk 2014-10-29 11:23:53

0

你傳入數據...嘗試使用.. 。data:{input_data:input}和使用的.html,而不是VAL()...

$.ajax({ 
    type: "POST", 
    url: "script.php", 
    data: {input_data:input}, 
    success: function (data) { 
     $("#output").html(data); // to display as text... "output" could be a div element 
}); 
0

你試過在script.php文件中將您的響應的內容類型更改爲application/json

看到這個:What is the correct JSON content type?

+0

完成這個之後,我現在不會得到'alert()'。 POST仍然可以通過。 – mpdc 2014-10-29 11:46:47