我有一个调用PHP脚本的AJAX脚本,该脚本使用CURL向webservice发送请求并将响应保存在文本文件中。
代码如下:
使用Javascript:
$(document).ready(function(){
$("#doCall").click(function(){
$.ajax({
cache : false,
type : 'POST',
url : 'test.php',
success : function (response) {
console.log(response);
},
error : function () {
console.log("Server side error, try later!");
}
});
});
});
PHP
<?php
$data = '<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws">
<soapenv:Header/>
<soapenv:Body> <ws:uploadCSRP soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<email xsi:type="xsd:string">myemail@email.com</email>
<pw xsi:type="xsd:string">pass123</pw>
<pid xsi:type="xsd:string">111</pid>
<buildID xsi:type="xsd:string">1.0</buildID>
<fileDataType xsi:type="xsd:string">S</fileDataType>
<fileToUpload xsi:type="xsd:string"><![CDATA[10038|Dickson Motor Service, Inc.|Dickson Motor Service, Inc.|SS4u@att.net|*
10040|Ramus Companies, Inc.|Ramus Companies|DD@gmail.com|*
]]></fileToUpload>
</ws:uploadCSRP> </soapenv:Body></soapenv:Envelope>
';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "MyURL");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 60000);
curl_setopt($ch,CURLOPT_POST, 1);
curl_setopt($ch,CURLOPT_POSTFIELDS, $data);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch,CURLOPT_HTTPHEADER, array("Content-Type: text/xml;charset=UTF-8", "SoapAction: *"));
$content = trim(curl_exec($ch));
curl_close($ch);
$myfile = fopen("response.txt", "w") or die("Unable to open file!");
fwrite($myfile, $content);
fclose($myfile);
echo done;
我面临的问题如下:
当数据变量包含一些条目时,一切正常,响应保存在文件中,“完成”打印在浏览器的控制台中,但是当我在数据变量中放入10000个条目时,ajax调用永远不会结束,当我检查response.txt文件我看到服务器发送了响应并且它已保存在文件中,所以我的问题是:我的代码中是否存在ajax或curl的超时问题,当发送大量数据时会发生?
感谢。