javascript - Chrome 扩展 - 将信息传递到 API - 获取 cors 400

标签 javascript json ajax google-chrome-extension

我正在尝试通过 Chrome 扩展程序获取文本并将其发布到 google API。

目前我收到此错误。

POST https://language.googleapis.com/v1/documents:analyzeSentiment?key=PASSWORD 400
Response {type: "cors", url: "https://language.googleapis.com/v1/documents:analy…iment?key=strongPassword", redirected: false, status: 400, ok: false, …}
body: (...)
bodyUsed: false
headers: Headers {}
ok: false
redirected: false
status: 400
statusText: ""
type: "cors"
url: "https://language.googleapis.com/v1/documents:analyzeSentiment?key=Strongk"
__proto__: Response

我尝试使用 XMLHttpRequest 而不是 fetch,并使用下面的代码进行了测试(使用了 fetch)。

function sendData(text) {
    console.log(text);
// json p?
    var request = {
        document: {
            type: 'PLAIN_TEXT',
            content: text
        },
        encodingType: 'UTF8'
    };
    //use another type of call?
    var jsonRequest = JSON.stringify(request)
    console.log("JSON STRING: "+jsonRequest)
    fetch('https://language.googleapis.com/v1/documents:analyzeSentiment?key=StrongkPword', {
    mode:'cors',    
    method: 'POST',
        body: jsonRequest,
        headers: {
            'Content-Type': 'application/json'
        }
    }).then((res) => {
        console.log(res)
        console.log(res.body)
    });
}

所以我目前的想法是,需要使用JsonP,或者还有其他不太对劲的地方。

发送的文本是

JSON STRING: {"document":{"type":"PLAIN_TEXT","content":"GIVE IT A STAB.. YEAH...PLZWORK "},"encodingType":"UTF8"}

{
    "manifest_version": 2,
    "name": "C.E",
    "short_name": "MRPHASMD",
    "version": "1.0",
    "author": "MICHAEL HOLBORN",

    "description": "A minimal extension which demonstrates ma power level.",

    "content_scripts": [
        {
            "matches": [ "*://mail.google.com/*" ],
            "js": [
                "src/extensionInjector.js"
            ],
            "run_at": "document_end"
        }
    ],

    "web_accessible_resources": [
        "dist/extension.js"
    ],

    "permissions": [
        "https://*/*"
    ]
}

我对如何使其正常工作感到非常困惑,感谢您的帮助!

最佳答案

我通过利用 chrome API 将消息发送到后台脚本函数,然后发送到我的 API 来解决这个问题

关于javascript - Chrome 扩展 - 将信息传递到 API - 获取 cors 400,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60024613/

相关文章:

javascript - 无法从 Controller angularjs 访问服务

javascript - JavaScript 中的位移

javascript - Breeze.js 1.4.1 属性未定义不为空

arrays - 我们如何在 golang 的结构中初始化结构类型的数组(存储 json 输出)

javascript - 使用 MVC Form Post 发送 HTML 字符串

php - AJAX使用$_POST方法传输大量数据

javascript - Angular 2 - 将选中的单选按钮的值添加到数组中

java - 如何使用JSON编写 map 文件

php - 如何使用 Ajax 动态加载 Javascript 函数?

javascript - 我们如何通过表单文本输入通过ajax发送json编码的数据