2014-01-11 28 views
0

注意:请求正在从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 &lt;customErrors&gt; tag within a &quot;web.config&quot; configuration file located in the root directory of the current web application. This &lt;customErrors&gt; tag should then have its &quot;mode&quot; attribute set to &quot;Off&quot;.<br><br> 

     <table width=100% bgcolor="#ffffcc"> 
      <tr> 
       <td> 
        <code><pre> 

&lt;!-- Web.Config Configuration File --&gt; 

&lt;configuration&gt; 
&lt;system.web&gt; 
    &lt;customErrors mode=&quot;Off&quot;/&gt; 
&lt;/system.web&gt; 
&lt;/configuration&gt;</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 &quot;defaultRedirect&quot; attribute of the application&#39;s &lt;customErrors&gt; configuration tag to point to a custom error page URL.<br><br> 

     <table width=100% bgcolor="#ffffcc"> 
      <tr> 
       <td> 
        <code><pre> 

&lt;!-- Web.Config Configuration File --&gt; 

&lt;configuration&gt; 
&lt;system.web&gt; 
    &lt;customErrors mode=&quot;RemoteOnly&quot; defaultRedirect=&quot;mycustompage.htm&quot;/&gt; 
&lt;/system.web&gt; 
&lt;/configuration&gt;</pre></code> 

       </td> 
      </tr> 
     </table> 

     <br> 

</body> 

我该怎么办?我将这些文件放在根目录下,确保写入文件是可写的,而我什么都没有。

+0

您将哪个应用程序放入根? –

+0

proxy.php文件位于本地主机上的文件夹中,因此我将web.config文件放在localhost根目录(var/www)中。 –

回答

0

您看到的错误消息是说“某些事情”出错了 - 并且建议您通过编辑它的web.config来启用ASP.Net主机上的远程错误以告诉您更多信息。这可能是因为服务器出现故障,或者在请求中可能出错,因此请将调试器连接到ASP.Net站点或启用远程错误

+0

好的,它隐藏了错误。我无法访问该服务器,因此我无法对web.config进行任何操作。那么有什么东西会跳出来,可能是错误的请求?您可以在此页面查看原始请求的样子:http://www.zulutrade.com/trader/128391 –

+0

是否有您未使用[SOAP接口](http:// www。 zulutrade.com/WebServices/Performance.asmx?op=GetProviderTrades)(如[WSDL](http://www.zulutrade.com/WebServices/Performance.asmx?op=GetProviderTrades)中所述) –

+0

我在想,为什么他们在url中使用“webservices”))谢谢!你怎么知道有一个肥皂接口? –