Windows XP Professional(Service Pack 1)MSXML3.Dll(SP3 / 版本号:8.30.9926.0)挪用ServerXMLHTTP的代码是: MSXML2::IServerXMLHTTPRequestPtr pIXMLHttpRequest = NULL; HRESULT hr = pIXMLHttpRequest.CreateInstance("MSXML2.ServerXMLHTTP"); hr = pIXMLHttpRequest->open(L"POST", bstrPHPURL, VARIANT_FALSE, // 同步发送 vtMissing, vtMissing); hr = pIXMLHttpRequest->send(varData); 准确吸收POST恳求的PHP for MS Windows・体系情况
用$HTTP_RAW_POST_DATA正常吸收了数据的PHP for Windows装置信息:PHP Version 4.2.2SystemWindows NT 5.1 build 2600Server APICGI关于利用这个全局变量的相干设置:DirectiveLocal ValueMaster Valuealways_populate_raw_post_data00 没法吸收POST恳求的PHP for Linux・体系情况
没法用$HTTP_RAW_POST_DATA吸收POST数据的PHP for Linux装置信息:PHP Version 4.3.2RC3System Linux atm2 2.4.18-1 #1 Wed May 29 10:45:23 CST 2002 i686 Server API Apache Registered PHP Streams php, http, ftp 关于利用这个全局变量的相干设置:DirectiveLocal ValueMaster Valuealways_populate_raw_post_dataOnOn 更多信息
照理说,只需php.ini中界说了; Always populate the $HTTP_RAW_POST_DATA variable.always_populate_raw_post_data = On就完整可以用$HTTP_RAW_POST_DATA变量来吸收数据。最少$_POST变量是可以测算出POST到页面的数据巨细的。 我的确看到有几团体试图呈报“Empty $HTTP_RAW_POST_DATA”是一个PHP的Bug,然而PHP保护人员说一定不是。处理步调
不晓得Windows下的PHP 4.2.2怎样一向可以吸收。然而假如我显式声明Content-Type为file的话,Linux下的PHP 4.3.2RC3就能够正常吸收POST数据了。设置头信息的代码以下:hr = pIXMLHttpRequest->setRequestHeader( _bstr_t("Content-Type"), _bstr_t("file")); 如许做的话,PHP 4.2.2 for Windows和PHP 4.3.2RC3 for Linux都可以用$HTTP_RAW_POST_DATA吸收,没有成绩。 总结: