Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将json对象发布到web api,然后接收响应?_Javascript_Php_Json_Post_Authorization - Fatal编程技术网

Javascript 如何将json对象发布到web api,然后接收响应?

Javascript 如何将json对象发布到web api,然后接收响应?,javascript,php,json,post,authorization,Javascript,Php,Json,Post,Authorization,我有php代码,工作正常,但客户希望将其转换为javascript。 我有一个web api服务url,我需要通过username:password进行授权,然后将一个json对象发布到web api url以接收数据(也是json类型) 以下是我的php代码: curl_setopt($ch, CURLOPT_URL, $MyWebApiUrl); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLINFO_

我有php代码,工作正常,但客户希望将其转换为javascript。 我有一个web api服务url,我需要通过username:password进行授权,然后将一个json对象发布到web api url以接收数据(也是json类型)

以下是我的php代码:

curl_setopt($ch, CURLOPT_URL, $MyWebApiUrl);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLINFO_HEADER_OUT, true);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                                                          
    'Content-Type: application/json' )
);

curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);           //  curl authentication

curl_setopt($ch, CURLOPT_USERPWD, "$Username:$Password");       //  curl authentication

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS,$MyPostJsonObject);

$str=  curl_exec($ch);

curl_close($ch);

$data = json_decode($str)
这是到目前为止我的javascript代码

$.ajax({
            type: 'POST',
            url: MyWebApiUrl,            
            beforeSend: function (xhr) { xhr.setRequestHeader("Authorization", "Basic  XXXXXXXXXX");},
            data: JSON.stringify(MyPostJsonObject),
            contentType: 'application/json; charset=utf-8',
            dataType: 'json',
            success: function (data) {
                alert(data.d);
            },
            error: alert("An error occurred: ")
        });
我总是收到“发生错误:”


希望你能帮忙。谢谢。

将错误函数定义为

error: function(jqXHR, textStatus, errorThrown) {
    alert('An error', jqXHR, textStatus, errorThrown );
}

了解您的请求无法通过的原因。

jqXHR对象包含有关请求的信息。例如,status和responseText属性包含主要信息。将警报消息编辑为
警报('a error',jqXHR.status,jqXHR.responseText)。看