PHP POST请求相当于javascript请求

PHP POST请求相当于javascript请求,javascript,php,Javascript,Php,我正在尝试编写一个简单的PHP插件,它将从服务器获取数据并向用户显示它们 我已经用下面的javascript代码访问了服务器。然而,当我尝试使用PHP做同样的事情时(这一直是我的目标),我只得到一个超时或一个错误 你能指出我的PHP代码与javascript代码的区别/错误吗 工作示例: function myFunction() { $.ajax({ url: 'URL', headers: { 'Authorization':'KEY',

我正在尝试编写一个简单的PHP插件,它将从服务器获取数据并向用户显示它们

我已经用下面的javascript代码访问了服务器。然而,当我尝试使用PHP做同样的事情时(这一直是我的目标),我只得到一个超时或一个错误

你能指出我的PHP代码与javascript代码的区别/错误吗

工作示例:

    function myFunction() {
    $.ajax({
    url: 'URL',
    headers: {
        'Authorization':'KEY',
        'PortalAuthorization':'KEY', 
        'Content-Type':'application/json'
    },
    method: 'POST',
    dataType: 'json',
    data: JSON.stringify({"ServerName":"MAIN","List":null}),
    error: function(xhr, error){
       console.debug(xhr); 
       console.debug(error);
    },
    success: function(data) {
       console.log(data);
    }
 });
 }
A默认的PHP等效项:

<?php
    function prepare_headers($headers) {
        return
        implode('', array_map(function($key, $value) {
                return "$key: $value\r\n";
            }, array_keys($headers), array_values($headers))
        );
    }
//json parsing
    $son->ServerName = "MAIN";
    $son->List = "null";
    $JS = json_encode($son);
    $len = strlen($JS);

    $headers = array('Authorization'=>"KEY",
    'PortalAuthorization'=>"KEY",
    'Content-Type' => "application/json", 'Content-Length' => $len
                    );

    $oo = prepare_headers($headers);
    $url = urldecode('URL');
    $context = stream_context_create(array( 'http' => array(       
        'method'=>"POST",
        'header'=> $oo,
        'Content' => $JS
    )));
    $result = file_get_contents($url,false,$context);
?> 

这将导致警告:无法打开流:HTTP请求失败!以及随后的致命错误:由于行
$result=file\u get\u contents($url,false,$context)导致超过30秒的最大执行时间

我还尝试只执行
'header'=>$headers
,但这导致了另一个错误:无法打开流:HTTP请求失败!HTTP/1.1 411
$result=file\u get\u contents($url,false,$context)中需要的长度再次


我不熟悉PHP,因此希望您能提供帮助。

$url=urldecode('url')???你真的想要字符串“URL”吗?不管
'URL'
是什么,运行php的主机都无法访问它。@Roemer URL只是一个占位符,在代码本身中,我用工作值替换了URL和键。Top。不管怎样,只要跳过urldecode,可能与此有关。你不知道;“我不想解码一个要用作URL的URL。@YvesLeBorg我正在使用XAMPP在本地主机上测试它。”。