访问steam API Vue Axios时出现Cors问题

时间:2018-04-19 23:18:59

标签: javascript api vue.js cors

我对Vue不熟悉,但我试图从csgo附近的steam api获取一些细节。当我尝试引入数据时,它会在api url上显示 405(Method Not Allowed),并且对预检请求的响应也没有通过访问控制检查:否'访问控制允许来源'标头出现在请求的资源上。起源' http://127.0.0.1:8000'因此不允许访问。响应的HTTP状态代码为405。

我似乎无法解决这个问题,我尝试使用一些在线代理并在蒸汽api之前放置url但没有运气。

任何帮助将不胜感激!谢谢!

<template>
        <div>
            <ul v-if="posts && posts.length">
                <li v-for="post of posts">
                    <p><strong>{{post.steamID}}</strong></p>
                    <p>{{post.stats}}</p>
                </li>
            </ul>

            <ul v-if="errors && errors.length">
                <li v-for="error of errors">
                    {{error.message}}
                </li>
            </ul>
        </div>
</template>

<script>
    import axios from 'axios';

    export default {
        data() {
            return {
                posts: [],
                errors: []
            }
        },

        // Fetches posts when the component is created.
        created() {
            axios.get(`http://api.steampowered.com/ISteamUserStats/GetUserStatsForGame/v0002/?appid=730&key=52828DE98A6C45A556BF4E5AF4F3CF1D&steamid=76561197980619010`)
                .then(response => {
                    // JSON responses are automatically parsed.
                    this.posts = response.data
                })
                .catch(e => {
                    this.errors.push(e)
                })

            // async / await version (created() becomes async created())
            //
            // try {
            //   const response = await axios.get(`http://jsonplaceholder.typicode.com/posts`)
            //   this.posts = response.data
            // } catch (e) {
            //   this.errors.push(e)
            // }
        }
    }
</script>

1 个答案:

答案 0 :(得分:0)

这是您的网络浏览器和网络服务器的一部分。

它基本上可以阻止恶意攻击,例如

  1. 您访问my-innocent-blog.com并且它有一个&#34;喜欢我的网站&#34;按钮
  2. 您点击它,然后向StackOverflow发送删除帐户的请求。
  3. StackOverflow服务器收到DELETE请求,其来源为my-innocent-blog.com,它会告诉您的网络浏览器&#34;该请求应该仅来自我们自己的网站&#34;。
  4. 您的网络浏览器显示&#34;好的,我将忽略该请求并抛出CORS错误&#34;
  5. 从而保护您免受意外被欺骗删除帐户(或更糟)。

    如果您使用的是ExpressJS服务器,请查看他们的CORS包。 https://github.com/expressjs/cors

    否则,只需搜索&#34; CORS&#34;在谷歌上,你几乎可以找到所有东西。