我有以下成功完成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
包含以下代码可能不值得:
<?php
header("Content-type: application/xml");
echo file_get_contents("https://api.example.com");
?>
如果echo file_get_contents()
与返回的内容有任何关系?我的初始输入字符串是XML格式吗? POSTed数据是否甚至到达了其他服务器?
第二次编辑:
将我的.done()
更改为alert(output);
会给我一个只包含null
的弹出式窗口。好像我的PHP脚本(解决Cross-Origin问题的一种明显的hacky方法)并没有以我可以使用的方式返回请求。
var input = $("#input").val();
$(".pure-button").click(function() {
$.ajax({
type: "POST",
url: "script.php",
data: input
}).done(function(output) {
alert(output); // returns "null"
});
});
答案 0 :(得分:0)
您需要在创建呼叫时传递成功功能,如下所示:
var input = $("#input").val();
$(".pure-button").click(function() {
$.ajax({
type: "POST",
url: "script.php",
data: input,
success: function (data) {
$("#output").val(data);
});
});
答案 1 :(得分: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
});
答案 2 :(得分:0)
您是否尝试在script.php文件中将响应的内容类型更改为application/json
?