2

我正在向 REST 服务器发送一个 json 字符串并接收一个作为回报,我使用的 flash 代码如下

        var urlLoader : URLLoader = new URLLoader();
        urlLoader.dataFormat = URLLoaderDataFormat.TEXT;
        urlLoader.addEventListener(Event.COMPLETE, completeHandler);
        urlLoader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);

        var header1 : URLRequestHeader = new URLRequestHeader("Content-Type", "application/json");
        var header2 : URLRequestHeader = new URLRequestHeader("Accept", "application/json");
        var header3 : URLRequestHeader = new URLRequestHeader("pragma", "no-cache");

        var urlRequest : URLRequest = new URLRequest(url);
        urlRequest.requestHeaders.push(header1);
        urlRequest.requestHeaders.push(header2);
        urlRequest.requestHeaders.push(header3);

        urlRequest.data = session;
        urlRequest.contentType = "application/json";
        urlRequest.method = URLRequestMethod.POST;
        urlLoader.load(urlRequest);

当我没有将自定义请求标头添加到请求时,我的服务器会正​​确接收 POST 数据。当我添加自定义标题时,POST 为空。这可能是什么原因造成的?

4

1 回答 1

0

虽然数据将通过 POST 发送,但 PHP 不会填充$_POST全局数组,因为您使用的 Content-Type 为application/json.

尝试将您的 Content-Type 标头更新为application/x-www-form-urlencoded

var header1 : URLRequestHeader = new URLRequestHeader("Content-Type", "application/x-www-form-urlencoded");

在这里,虽然您已经在上面设置了标题:

urlRequest.contentType = "application/x-www-form-urlencoded";
于 2012-10-24T12:41:10.217 回答