注意: - 我实际上编辑了我的旧问题,所以忽略答案。
我想将一些xml数据发送到一个网站,该网站实际上是用于演示目的,
所以这是代码,
<script>
var params = "<soap:Envelope xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'"
"xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'"
"xmlns:xsd='http://www.w3.org/2001/XMLSchema'>"
"<soap:Body>"
"<TransferBalance xmlns='http://www.altoromutual.com/bank/ws/'>"
"<transDetails>"
"<transferDate>2000-01-01</transferDate>"
"<debitAccount>20</debitAccount>"
"<creditAccount>21</creditAccount>"
"<transferAmount>240</transferAmount>"
"</transDetails>"
"</TransferBalance>"
"</soap:Body>"
"</soap:Envelope>";
var xhr = new XMLHttpRequest();
xhr.onreadystatechange=function(){
if(xhr.readyState==4 && xhr.status==200){
console.log(xhr.responseXML);
}
}
xhr.open("POST" ,"http://demo.testfire.net/bank/ws.asmx");
xhr.setRequestHeader("SOAPAction", "http://www.altoromutual.com/bank/ws/TransferBalance");
xhr.setRequestHeader("Content-Type", "text/xml");
xhr.send("params");
</script>
现在,当我看到网络面板时,我的OPTIONS请求变好了,但我的原始请求在哪里?
当我看到控制台面板时,它说缺少访问控制允许来源?现在我该怎么做?
有没有办法做到这一点?
答案 0 :(得分:2)
使用tmp_name
键作为move_uploaded_file
$_FILES['filename']['tmp_name'];
只是抬头,因为您正在编写文件上传模块,请正确检查mime类型。
对于php 5.3+
,请使用finfo()
$finfo = new finfo(FILEINFO_MIME);
print_r($finfo->buffer(file_get_contents($_FILES['filename']['tmp_name']))); //returns the mime type. Example (image/png)
在脚本的最顶部添加错误报告。
error_reporting(E_ALL);
同时删除@
旁边的$_FILES
。这是一个错误抑制器。
还要确保filename
数组中实际存在$_FILES
。执行print_r($_FILES);
以验证它确实存在
答案 1 :(得分:0)
使用此方法,因为PHP使用临时名称
存储文件move_uploaded_file(@$_FILES['filename']['tmp_name'], $original_path1)
此外,请务必检查文件夹权限问题(非常常见)和error_log。