¿Cómo hacer una request JSONP POST en angular?

El método $ http.jsonp descrito en la documentation oficial parece que siempre realiza requestes de obtención: http://docs.angularjs.org/api/ng . $ Http # methods_jsonp.

He intentado configurar la opción de configuration en 'POST', pero todavía envía un GET:

$http.jsonp('/api/new?callback=JSON_CALLBACK', {method: 'POST'}); 

También intenté establecer un argumento de datos con la esperanza de que angular cambiara a POST:

 $http.jsonp('/api/new?callback=JSON_CALLBACK', {data: {stuff: true}}); 

Pero todavía no 🙂

En cuanto a hacer una publicación como esta:

 $http.post('/api/new?callback=JSON_CALLBACK') 

Sí hace un POST obviamente pero no hace la cosita mágica angular con el JSON_CALLBACK y produce el siguiente error JS:

 No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://xxx.yyy.zzz' is therefore not allowed access. 

(La API no está en el mismo server que la aplicación, ese es el punto de JSONP).

Google fue de lo más inútil sobre este tema y leer las fonts de angular no es la tarea más fácil. Entonces, ¿cómo puedo hacer una request JSONP POST con angular?

No puede realizar una request POST utilizando JSON-P (con o sin Angular)

Una request JSON-P funciona al generar un elemento <script> con un atributo src . Esto siempre activará una request GET.


Si desea realizar una request POST entre dominios con JavaScript, debe usar XMLHttpRequest (y hacer que el server suministre los encabezados de control de acceso adecuados según la especificación CORS ) o enviar la request a través del server que aloja la página.