由personnal webservice

时间:2017-11-08 19:20:01

标签: jquery ajax web-services

我正在构建一个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数据,或者是否有一些特定的选项服务器端来提供这种数据。

1 个答案:

答案 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调用中的参数。