Axios call api with GET become OPTIONS

后端 未结 2 1163
春和景丽
春和景丽 2021-01-12 10:42

I use axios for calling API (in front-end). I use the method \"GET\" :

import axios from \'axios\';
import querystring from \'querystring\';

var url   = \"m         


        
相关标签:
2条回答
  • 2021-01-12 11:15

    So the way to solve this npm install qs.

    Then:

    import qs from 'qs'
    
    function send(params) {
      return axios.post('/api/create/', qs.stringify(params))
    }
    
    0 讨论(0)
  • 2021-01-12 11:17

    Like @Shilly says, OPTIONS method is pre-flight on modern browsers when Preflighted requests conditions (MDN) :

    In the response header I had Allow:"GET, HEAD, POST, PUT, DELETE". So OPTIONS method is not available and need to configure it on in the server (Apache).

    I do the change on apache (/etc/apache2/sites-available/000-default.conf) :

    Header set Access-Control-Allow-Origin "*"
    Header set Access-Control-Allow-Headers "*"
    Header set Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"
    

    In Request headers I have :

    Origin: "null" is a problem. The cause is :

    file:// URLs produce a null Origin which can't be authorized via echo-back. Don't trying to perform a CORS request from a file:// URL (see this post for more details)

    After put my javascript file on a apache server, the Origin was not null but I need to add NelmioCorsBundle to my Symfony project to allow preflight

    0 讨论(0)
提交回复
热议问题