在Vue中使用JSONP进行跨域请求是不可能的,因为JSONP只支持GET请求,而不支持POST请求。JSONP是通过动态创建<script>标签实现的,而<script>标签只能发送GET请求。

如果需要在Vue中进行跨域POST请求,可以使用其他方法,如CORS(跨域资源共享)或代理。以下是使用CORS进行跨域POST请求的示例:

// 在Vue组件中使用axios库发送POST请求
import axios from 'axios';

export default {
  methods: {
    postData() {
      axios.post('http://api.example.com/post', { data: 'example' })
        .then(response => {
          // 处理响应
        })
        .catch(error => {
          // 处理错误
        });
    }
  }
}

在这个示例中,我们使用axios库发送POST请求。需要注意的是,服务器必须支持CORS,即在响应头中包含Access-Control-Allow-Origin字段,并且允许来自Vue应用的域名。

如果服务器不支持CORS,可以考虑使用代理来转发请求。通过在Vue应用的配置文件中设置代理,Vue应用将把请求发送到代理服务器,然后由代理服务器发送请求到目标服务器。

// vue.config.js配置文件
module.exports = {
  devServer: {
    proxy: {
      '/api': {
        target: 'http://api.example.com',
        changeOrigin: true,
        pathRewrite: {
          '^/api': ''
        }
      }
    }
  }
}

在这个示例中,我们将所有以/api开头的请求转发到http://api.example.com。在Vue组件中只需要使用/api作为路径来发送请求。

// 在Vue组件中发送POST请求
import axios from 'axios';

export default {
  methods: {
    postData() {
      axios.post('/api/post', { data: 'example' })
        .then(response => {
          // 处理响应
        })
        .catch(error => {
          // 处理错误
        });
    }
  }
}

通过使用CORS或代理,我们可以在Vue中进行跨域POST请求。但请注意,使用CORS可能需要在服务器端进行额外的配置,而使用代理可能会增加额外的服务器开销

vue jsonp跨域请求post

原文地址: https://www.cveoy.top/t/topic/hQ3g 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录