我正在构建一个Web服务。 服务器程序使用Ocamlnet库在OCaml中编写。
服务器提供html页面(和css / js文件),也可以通过发送json编码的字符串来回答特定请求。
我有一个html客户端接口,使用jquery ajax请求向服务器发出请求。
每次我提出请求时,都会出现此错误:
Erreur d’analyse XML : mal formé
Emplacement : http://localhost:1512/sim_commands/?command=my_command
Numéro de ligne 1, Colonne 1 :
请注意,无论请求是什么,位置始终是
line : 1, column : 1
另请注意,此错误不会阻止我的服务按预期工作, 收到并处理数据没有问题,但是,如果错误不存在,事情会更好。
我怀疑我的错误来自我发送和接收json数据的方式,因为我对Web请求的规范几乎一无所知。
以下是进行ajax调用的函数:
self.ajax = function(uri, method, data) {
var request = {
url: uri,
dataType: 'json',
data: data,
crossDomain: true,
success : function(json) {
console.log(json);
},
error: function(jqXHR) {
console.log("ajax error " + jqXHR.status);
}
};
return $.ajax(request);
}
所以我想知道是否有任何缺少客户端来处理原始json数据,或者是否有一些特定的选项服务器端来提供这种数据。
答案 0 :(得分:0)
好吧我终于解决了我的问题。
干净的方法是在发送数据之前设置cgi标头:
cgi # set_header ~content_type:"application/json" ();
cgi # out_channel # output_string response;
cgi # out_channel # commit_work();
(ajax调用需要“application / json”。
但是也可以使用
覆盖ajax方面beforeSend: function(xhr){
if (xhr.overrideMimeType)
{
xhr.overrideMimeType("application/json");
}
}
作为ajax调用中的参数。