2015-12-12 9 views
5

Próbuję wysłać żądanie postu z następującym kodem. Ale żądanie przychodzi jako żądanie GET zamiast POST. Jak to naprawić.POST jest konwertowany na GET, podczas wysyłania żądania za pośrednictwem lokalnego apache

$.ajax({ 
    url: 'https://www.exampleurl.com', 
    method: 'POST', 
    headers: {"Access-Control-Allow-Origin": true}, 
    data: {url:'bla',call:"trans"} 
    dataType: 'jsonp', 
    success: function(data){ 
     console.log('succes: '+data); 
    } 
    }); 

Jest to błąd otrzymuję XMLHttpRequest nie może załadować https://example.com. Odpowiedź na żądanie inspekcji wstępnej nie przechodzi kontroli kontroli dostępu: Na żądanym zasobie nie ma nagłówka "Access-Control-Allow-Origin". Pochodzenie "http://localhost" jest zatem niedozwolone. Odpowiedź miała kod stanu HTTP 401.

Po usunięciu nagłówka Access-Control-Allow-Origin, ja dostaję błąd 404

+0

Używam localhost .. – gates

+0

Ponieważ pochodzenie krzyżowe nie jest dozwolone w przeglądarce .. jsonp jest przypadkową rzeczą, ponieważ json nie działa – gates

+0

Pozwól nam [kontynuować tę dyskusję na czacie] (http: //chat.stackoverflow .com/rooms/97707/discussion-between-gates-and-jaromanda-x). – gates

Odpowiedz

0

Nie trzeba przekazać parametry w atrybucie url kiedy chcesz wysłać POST zwrócić należy użyć atrybutu data zamiast spojrzeć na jQuery.ajax():

$.ajax({ 
    url: 'https://www.exampleurl.com', 
    method: 'POST', 
    data: {q:1, q2:2}, 
    headers: {"Access-Control-Allow-Origin": true}, 
    dataType: 'jsonp', 
    success: function(data){ 
     console.log('succes: '+data); 
    } 
}); 

nadzieję, że to pomaga.

+0

, który nie robi różnicy z dataType: jsonp –

2

Nie sądzę, możesz użyć metody POST z żądaniem jsonp. wywołania zwrotne jsonp tylko z metodą GET. Spójrz na link.

+0

POST z jsonp faktycznie nie ma sensu, ponieważ mechanizm jsonp po prostu wstawia element '