注意:请求正在从php发送到一个asp.net服务器,您可以看到下面的URL。据我所知这应该工作,但我得到一个混乱的HTML错误消息,而不是一个不错的JSON数据响应! 下面是输入:
查询字符串:_tsmp = “1389427807768”
请求负载: { “开始”:0, “长度”:20, “sortBy”: “DC”, “sortAscending”:假“providerId “:128391,”currencyIds“:[],”fromDateStr“:”2007-01-01“,”toDateStr“:”2014-01-11“,”validTrades“:true,”lotSize“:2}cURL响应是要求一个web.config文件将错误写入
* 文件本地主机/测试/ proxy.php *处理从jquery的AJAX请求
<?php
$input = @file_get_contents('php://input');
$jdv = json_decode($input, true);
date_default_timezone_set('Europe/Kiev');
$url = 'http://www.zulutrade.com/WebServices/Performance.asmx/GetProviderTrades?_tsmp'.$_GET['_tsmp'];
foreach($_GET as $getname => $getvar) {
$fields[$getname] = urlencode($getvar); //for proxying get request to POST.
}
foreach($jdv as $postname => $postvar) {
if(is_array($postvar))$postvar = implode(",",$postvar);
$fields[$postname ] = urlencode($postvar); //for proxying POST requests.
}
$fields_string = "";
//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string, '&');
//open connection
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
//execute post
$result = curl_exec($ch);
//close connection
curl_close($ch);
echo $result;
响应
<html>
<head>
<title>Runtime Error</title>
<style>
body {font-family:"Verdana";font-weight:normal;font-size: .7em;color:black;}
p {font-family:"Verdana";font-weight:normal;color:black;margin-top: -5px}
b {font-family:"Verdana";font-weight:bold;color:black;margin-top: -5px}
H1 { font-family:"Verdana";font-weight:normal;font-size:18pt;color:red }
H2 { font-family:"Verdana";font-weight:normal;font-size:14pt;color:maroon }
pre {font-family:"Lucida Console";font-size: .9em}
.marker {font-weight: bold; color: black;text-decoration: none;}
.version {color: gray;}
.error {margin-bottom: 10px;}
.expandable { text-decoration:underline; font-weight:bold; color:navy; cursor:hand; }
</style>
</head>
<body bgcolor="white">
<span><H1>Server Error in '/' Application.<hr width=100% size=1 color=silver></H1>
<h2> <i>Runtime Error</i> </h2></span>
<font face="Arial, Helvetica, Geneva, SunSans-Regular, sans-serif ">
<b> Description: </b>An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely (for security reasons). It could, however, be viewed by browsers running on the local server machine.
<br><br>
<b>Details:</b> To enable the details of this specific error message to be viewable on remote machines, please create a <customErrors> tag within a "web.config" configuration file located in the root directory of the current web application. This <customErrors> tag should then have its "mode" attribute set to "Off".<br><br>
<table width=100% bgcolor="#ffffcc">
<tr>
<td>
<code><pre>
<!-- Web.Config Configuration File -->
<configuration>
<system.web>
<customErrors mode="Off"/>
</system.web>
</configuration></pre></code>
</td>
</tr>
</table>
<br>
<b>Notes:</b> The current error page you are seeing can be replaced by a custom error page by modifying the "defaultRedirect" attribute of the application's <customErrors> configuration tag to point to a custom error page URL.<br><br>
<table width=100% bgcolor="#ffffcc">
<tr>
<td>
<code><pre>
<!-- Web.Config Configuration File -->
<configuration>
<system.web>
<customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/>
</system.web>
</configuration></pre></code>
</td>
</tr>
</table>
<br>
</body>
我该怎么办?我将这些文件放在根目录下,确保写入文件是可写的,而我什么都没有。
您将哪个应用程序放入根? –
proxy.php文件位于本地主机上的文件夹中,因此我将web.config文件放在localhost根目录(var/www)中。 –