2014-08-31 18 views
8

Próbuję wysłać żądanie POST takiego:parowa post Zapytanie - Nie udało się załadować zasób: serwer odpowiedział ze statusem 400 (Bad Request)

xhr.open("POST", "/steamapi/actions/RemoveFriendAjax", false); 
    var params = "sessionID="+session_id+"&steamid="+id; 
    xhr.onreadystatechange = function() {//Call a function when the state changes. 
     if(xhr.readyState == 4 && xhr.status == 200) { 
      alert(xhr.responseText); 
     } 
    } 
xhr.send(params); 

Używam serwera Apache i to jest mój plik .htaccess

RewriteEngine On 
RewriteRule ^api/(.*)$ http://api.steampowered.com/$1 [P] 
RewriteRule ^(.*)$ http://steamcommunity.com/$1 [P] 
<IfModule mod_headers.c> 
    Header add Access-Control-Allow-Origin "*" 
    Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type" 
    Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS" 
</IfModule> 

Ilekroć wysłać żądanie dostaję ten błąd:

Failed to load resource: the server responded with a status of 400 (Bad Request) 
enter code here 

Dlaczego t jego happening? Korzystałem z żądań GET na Steamie i działają dobrze, mówiąc, że to żądanie POST nie działa.

EDIT: To steamcommunity.com'srobot.txt file:

User-agent: * 
Disallow: /actions/ 
Disallow: /linkfilter/ 
Host: steamcommunity.com 

Mówi Disallow: /actions/, więc jest to powód dlaczego Dostaję błąd 400?

+0

Czy jesteś pewien, że ma to być '^ api/$', a nie '^ steamapi/$' w pierwszej regule przepisywania? Czy na pewno masz załadowany mod_proxy? –

+0

steamapi to nazwa strony na moim serwerze localhost –

Odpowiedz

0

Czy używasz setRequestHeader?

xhr.open("POST", "/steamapi/actions/RemoveFriendAjax", false); 
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
+0

Spróbuję tego i zobaczę czy to działa –

+0

Próbowałem tego i to nie działało. –

+0

Skonfiguruj jsFiddle i opublikuj tutaj. –

Powiązane problemy