我试图在jquery中使用$ .ajax()发送一个JSON对象,使用POST方法,从我的纯html页面到数据终端端点。火bug中的响应头给了我“内部服务器错误”,请任何人都可以告诉我这里我做错了什么: HTTP / 1.1 500错误 X-Backside-Transport:FAIL FAIL 内容类型:text / xml 连接:关闭
我的Jquery代码如下所示:
$(document).ready(function () {
$('#btn_submitcallback').click(function () {
//add the values we need for the API to an object
var objCallbackData = new Object;
var d = new Date();
var dat = d.getDate();
var mon = d.getMonth() + 1;
var year = d.getFullYear();
var todayDate = dat + "/" + mon + "/" + year;
alert("inside submit callback");
//build the object
objCallbackData.Store_Code = "POO726"; //$('#sel_title').val();
objCallbackData.Title = $('#sel_title').val();
objCallbackData.First_Name = $('#txt_firstname').val();
objCallbackData.Last_Name = $('#txt_surname').val();
objCallbackData.House_Number = $('#txt_houseno').val();
objCallbackData.Street = $('#txt_streetname').val();
objCallbackData.City = $('#txt_city').val();
objCallbackData.Post_Code = $('#txt_postcode').val();
objCallbackData.Email = $('#txt_email').val();
objCallbackData.Phone_Number = $('#txt_phone').val();
objCallbackData.Project_Type = "Bathroom";
objCallbackData.Callbacktime_Morning = "Y";
objCallbackData.Callbacktime_Afternoon = "Y";
objCallbackData.Callbacktime_Evening = "N";
objCallbackData.Callbacktime_Weekend = "N";
objCallbackData.Callbacktime_Weekday = "Y";
objCallbackData.Helparea_Measuring = "Y";
objCallbackData.Helparea_Designing = "N";
objCallbackData.Helparea_Usingspaces = "N";
objCallbackData.Helparea_Services = "N";
objCallbackData.Helparea_Productinfo = "N";
objCallbackData.Status = "O";
objCallbackData.Date = todayDate;
// alert(objCallbackData.date);
//turn the object in to a JSON string
var myJson = JSON.stringify(objCallbackData);
alert(myJson);
$.ajax({
type: 'POST',
url: 'http://xb629050-s1.uk.b-and-q.com:9340/api/callback',
contentType: 'application/json; charset=utf-8',
data: myJson,
dataType: 'json',
success: function () {
alert("good");
},
error: function (xhr, status) {
switch (status) {
case 404:
alert('File not found');
break;
case 500:
alert('Server error');
break;
case 0:
alert('Request aborted');
break;
default:
alert('Unknown error: ' + xhr.statusText);
}
}
});
});
});
答案 0 :(得分:0)
答案 1 :(得分:0)
试试这个:
$.getJSON("http://xb629050-s1.uk.b-and-q.com:9340/api?callback=?",
objCallbackData, processServerResponse);
其中processServerResponse是在获取数据后将被调用的函数:
function processServerResponse(data) {
// processing data from server
}
请参阅“免费geoIP”服务。尝试浏览:http://freegeoip.net/json/?callback=handleResponse
PS一些来自wiki的摘录:
..从server1.example.com提供的网页无法正常连接 与server1.example.com以外的服务器通信或与之通信。一些 例外包括HTML元素。利用开放 元素的策略,一些页面使用它们来检索 以动态生成的JSON格式运行的JavaScript代码 来自其他来源的数据。此使用模式称为JSONP。 对JSONP的请求不是JSON,而是任意JavaScript代码。 它们由JavaScript解释器评估,而不是由JSON解析 解析器。