2014-01-11 42 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」))謝謝!你怎麼知道有一個肥皂接口? –