求解:JSON在FireFox和Safari(Windows Vista)上返回空響應
問題在於Firefox 6.0.2的安全性。 我已將URL請求從: http://mysite.com/ajax/request 更改爲/ ajax /請求 及其工作。
如果您需要使用跨域,則需要使用jsonp作爲dataType。
非常感謝我的服務器返回一個空的響應evildead
我的JSON請求。 這隻發生在Windows Vista機器中的Firefox 6.0.2和Safari中。
輸出由php腳本生成並具有json /應用程序標題。
這將返回空響應:
$('#ajaxcall').click(function(){
var ts = new Date().getTime();
var urlz = $('#targeturl').val()+'/'+ts;
var dataString = $("#datazz").val();
$.ajax({
type: "POST", url: urlz, data: "data="+dataString,
success: function(data){
var obj = jQuery.parseJSON(data);
for (var i = 0; i < obj.length; i++) {
var object = obj[i];
for (property in object) {
var s = property + "=" + object[property] + "<br>";
$("#console").after(s);
}
}
}
});
});
除了這一點:
$("#tags").autocomplete({
source: function(request, response) {
$.post("http://mysite.com/v2/ajax/tag_suggestion/ab", {data:request.term}, function(data){
response($.map(data, function(item) {
if ($('#tagsboxvals').hasClass(item.name.split(' ').join('_'))){
return null;
} else {
return {
label: item.name,
value: item.name
}
}
}))
}, "json");
},
....
});
感謝您的幫助
編輯:這是什麼PHP腳本生成:
$arr = array(
array('name'=>'pizza', 'point'=>'1'),
array('name'=>'blt', 'point'=>'1'));
header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Content-type: application/json');
echo json_encode($arr);
這是一個格式正確的JSON文檔。
頁眉: 響應頭 日期星期三,2011年9月7日23時58分42秒GMT 服務器的Apache/2.2.3(CentOS的) X供電,通過PHP/5.1.6 過期星期一,1997年7月26日05:00:00 GMT 緩存控制無緩存,必重新驗證 語用無緩存 Content-Length的29 連接緊密 內容類型的應用程序/ JSON 請求頭 主機mysite.com 的User-Agent的Mozilla /5.0(Macintosh; Intel Mac OS X 10.7; rv:6.0)Gecko/20100101 Firefox/6.0 接受application/json,text/javas cript,/;接受 - 字符集ISO-8859-1,utf-8; q = 0.7,*; q = 0.7 接收 - 編碼gzip, alive Content-Type application/x-www-form-urlencoded; charset = UTF-8 X-Requested-With XMLHttpRequest Referer http://mysite.com/v2/user/register Content-Length 8 Cookie city = new york; __utma = 100174657.1435105779.1308773648.1314994226.1315368765.113; __utmz = 100174657.1315368765.113.98.utmcsr = mysite.com | utmccn =(引薦)| utmcmd =轉診| utmcct =
集管投遞響應JSON 對象{名稱= 「比薩餅」,點= 1} [對象名{ =「pizza」,point = 1}]
它可以在同一臺機器上正常工作,但不支持firefox和safari。
你能證明你的PHP腳本生成的JSON? – evildead
在你的成功函數中添加一個'console.log(data)',讓我知道什麼是輸出 – goatslacker
興奮我在想什麼,看到我的答案。你的json格式不正確! ]是否在最後一個響應行的結尾? – evildead