在 Node.js 中使用 API 调用清除 Cloudflare 缓存

如果

我希望通过其API清除 Cloudflare 的缓存更特别的是,清除所有文件命令。

但是,尽管使用 Node.js 的请求显式设置了标头,但我一直遇到“无效的 Content-Type 标头,有效值为 application/json,multipart/form-data”错误消息Content-Type

我想念什么?


var request = require('request');

gulp.task('cfPurge', function() {

    var options = {
        url: 'https://api.cloudflare.com/client/v4/zones/myZoneID/purge_cache',
        headers: {
            'X-Auth-Email': 'email',
            'X-Auth-Key': 'myAPIkey',
            'Content-Type': 'application/json'
        },
        form: {
            'purge_everything': true,
        }
    };

    function callback(error, response, body) {
        var resp = JSON.parse(body);

        if (!error & response.statusCode == 200) {
            console.log('CF Purge: ', resp.success);
        }
        else {
            console.log('Error: ', resp.errors);
            for (var i = 0; i < resp.errors.length; i++)
                console.log('      ', resp.errors[i]);

            console.log('Message: ', resp.messages);
            console.log('Result: ', resp.result);
        }
    }

    return request.post(options, callback);
});

输出:

Error:  [ { code: 6003,
    message: 'Invalid request headers',
    error_chain: [ [Object] ] } ]
       { code: 6003,
  message: 'Invalid request headers',
  error_chain:
   [ { code: 6105,
       message: 'Invalid Content-Type header, valid values are application/json,multipart/form-data' } ] }
Message:  []
Result:  null
内哈尔·J·瓦尼

根据cloudfare API文档,您需要发送 HTTP DELETE 请求而不是 HTTP POST 请求:

在此处输入图片说明

修改行...

return request.post(options, callback);

...和:

return request.del(options, callback);

此外,这不是一种形式。您需要将 JSON 放入数据正文中。所以,更换块...

form: {
    'purge_everything': true,
}

...和:

body: JSON.stringify({'purge_everything': true})

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

通过PHP中的API清除Cloudflare缓存

Cloudflare API:一次 API 调用可以从缓存中清除多少个 URL?

使用cloudflare缓存动态页面

是否可以使用 express.js 清除 node.js 需要缓存?

使用Node.js调用JSON API

如何使用 node.js 缓存图像

使用Cloudflare API从缓存中删除文件不起作用

在 cloudflare 工作人员中使用 aws4fetch 包调用 AWS api?

如何在整个api调用中使用node.js中的全局错误处理代码

在 node.js 中使用 oauth 进行嵌套 API 调用的最佳方法是什么?

如何在Node.js中使用异步瀑布进行API调用

在Node.js中使用Circuit-Breaker(Opossum)请求缓存

第一次调用 require() 时,node js 会做缓存吗?使用 Next.js

CloudFlare用于缓存核心php中开发的REST API响应

加载非js文件(例如graphql语言定义)时清除Node.js的缓存

使用Node.js和Express进行简单的API调用

使用sinon模拟node.js API调用

如何使用Node.js ExpressJS或Superagent调用Freebase API

Node.js Twilio 使用 REST API 进行调用

Node.js - 使用 axios 调用 OCR 空间 api

如何在Node.js中使用XHR API?

在Node.js中使用API密钥的最佳实践

node.js / ngnix是否对常用文件使用内部缓存?

使用请求承诺和Node.js缓存HTML

如何使用Node JS更新数据Redis缓存

Node js中的LRU缓存

如何在node.js中使用jQuery ajax调用

防止iframe的src中的外部文件被缓存(使用CloudFlare)

Cloudflare不会使用适当的标头缓存静态资产