我对web-dev世界很陌生,而且我正忙着一个简单的jQuery.ajax调用工作。这是电话:
var url = "http://client.the_url.com/get_account_data.php";
$.ajax({
url: url,
dataType: 'json',
success: function(resultsData){
resultsDataString = JSON.stringify(resultsData, null, 4);
alert("We're finally making the call.");
},
error:function (xhr, ajaxOptions, error){
alert("Error");
}
});
我可以将网址复制并粘贴到浏览器中,然后呈现我的期望:
{
"id":"Level 3.xpusdscah",
"type":"Level 3",
"name":"xpusdscah",
"total":0,
"in":0,
"out":0
}
相反,我每次都会收到错误提醒。 :/
我正在点击的php脚本以标题开头:
header('Content-type: application/json');
我试图将params传递给php脚本,但现在我甚至没有这样做。我认为这应该是一个“没脑子”,但如果是,那么我没有大脑。我正在试图弄清楚如何使用wireshark,但我是否真的需要使用wireshark来调试一个简单到调用php文件的调用?
任何人都可以帮助我吗?我真正希望的是“嗯 duh ,你没有做(在这里插入明显的解决方案)!
提前致谢,
初出茅庐的Web开发人员
答案 0 :(得分:0)
首先,你的回调函数没用。它每次只显示文本“错误”。您希望实际显示错误,例如:
$.ajax({
url: url,
dataType: 'json',
data: data,
success: function(resultsData){
resultsDataString = JSON.stringify(resultsData, null, 4);
alert("We're finally making the call.");
},
error:error(jqXHR, textStatus, errorThrown){
alert("Error:" + textStatus+ "," + errorThrown);
}
});
错误回调的参数名称奇怪。文档说第二个参数是文本错误代码,errorThrown是Web服务器提供的HTTP状态代码。请参阅此处的文档:http://api.jquery.com/jQuery.ajax/
接下来,您将要获取数据包嗅探器。这将允许您检查进出Web服务器的数据包,并查看它正在抛出的错误消息。一个好的免费选项是Fiddler。
答案 1 :(得分:0)
您发送的数据不是json。
var data = "login="+localLogin+"&pw="+localPassword+"&forAccount="+forAccount+"&forAccountType="+forAccountType+"&topAccount="+topAccount+"&fromDate="+fromDate+"&toDate="+toDate;
应该是这样的:
var data = '{"Key1":"' + Value1 + '","Key2":"' + Value2 .... + '""}';
也许您应该将类型添加为POST和内容类型,如下所示:
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: ....
答案 2 :(得分:0)
试试这些: