我有时/经常在GWT中获得此异常,但不知道原因:
SEVERE: com.google.gwt.user.client.rpc.StatusCodeException: 0
java.lang.RuntimeException: com.google.gwt.user.client.rpc.StatusCodeException: 0
at Unknown.java_lang_RuntimeException_RuntimeException__Ljava_lang_Throwable_2V(Unknown Source)
at Unknown.de_ctech24_simplynews_web_client_util_SimpleCallback_$onFailure__Lde_ctech24_simplynews_web_client_util_SimpleCallback_2Ljava_lang_Throwable_2V(Unknown Source)
at Unknown.com_google_gwt_user_client_rpc_impl_RequestCallbackAdapter_$onResponseReceived__Lcom_google_gwt_user_client_rpc_impl_RequestCallbackAdapter_2Lcom_google_gwt_http_client_Request_2Lcom_google_gwt_http_client_Response_2V(Unknown Source)
at Unknown.com_google_gwt_http_client_Request_$fireOnResponseReceived__Lcom_google_gwt_http_client_Request_2Lcom_google_gwt_http_client_RequestCallback_2V(Unknown Source)
at Unknown.com_google_gwt_http_client_RequestBuilder$1_onReadyStateChange__Lcom_google_gwt_xhr_client_XMLHttpRequest_2V(Unknown Source)
at Unknown.<anonymous>(Unknown Source)
at Unknown.com_google_gwt_core_client_impl_Impl_apply__Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_Object_2(Unknown Source)
Caused by: com.google.gwt.user.client.rpc.StatusCodeException: 0
at Unknown.java_lang_RuntimeException_RuntimeException__Ljava_lang_String_2Ljava_lang_Throwable_2V(Unknown Source)
at Unknown.com_google_gwt_user_client_rpc_StatusCodeException_StatusCodeException__ILjava_lang_String_2V(Unknown Source)
at Unknown.com_google_gwt_user_client_rpc_impl_RequestCallbackAdapter_$onResponseReceived__Lcom_google_gwt_user_client_rpc_impl_RequestCallbackAdapter_2Lcom_google_gwt_http_client_Request_2Lcom_google_gwt_http_client_Response_2V(Unknown Source)
at Unknown.com_google_gwt_http_client_Request_$fireOnResponseReceived__Lcom_google_gwt_http_client_Request_2Lcom_google_gwt_http_client_RequestCallback_2V(Unknown Source)
at Unknown.com_google_gwt_http_client_RequestBuilder$1_onReadyStateChange__Lcom_google_gwt_xhr_client_XMLHttpRequest_2V(Unknown Source)
at Unknown.<anonymous>(Unknown Source)
at Unknown.com_google_gwt_core_client_impl_Impl_apply__Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_Object_2(Unknown Source)
Run Code Online (Sandbox Code Playgroud)
花了一些时间谷歌后我发现了这个:http://www.mail-archive.com/google-web-toolkit@googlegroups.com/msg79537.html
有一个有趣的提示:如果您断开WLAN并再次连接,则会出现这种情况 - 然后出现错误.我在我的笔记本上尝试了这个 - 然后发生异常.
另一个问题是有时会出现这种异常(并非总是在同一时间或执行特定操作时 - 所以看似随机),尽管网络连接正常.我不知道为什么会发生这种情况,也不知道处理它的正确方法是什么 - 确保我能抓住并忽略它.但是请求永远不会进入服务器并且不执行操作 - 不是很好的错误处理.
关于这个应用程序的一些数据 - 这可能有助于缩小或希望解决问题: …
我有一个基于 React 的 SPA,它通过 S3 托管在一个子域 react.mydomain.com 上……它与托管在另一个子域 api.mydomain.com 上的 VPS 上的 PHP REST API 通信。api.mydomain.com 位于 CloudFlare 之后。Web 应用程序位于 CloudFront 之后,因为它位于 AWS 上。
我遇到了机器人请求直接发送到 API 淹没我的 VPS 的问题,我想使用 CloudFlare 的 JS 挑战功能来缓解。
然而,似乎正在发生的事情是用户能够加载 React webapp(它不在 CloudFlare 后面)。然后,提示JS挑战的请求会立即失败并返回503响应,因为它是一个AJAX请求,与Javascript挑战不兼容。
我想我可以通过捕获错误和重定向来处理这个问题。但是,如果我手动强制我自己的浏览器导航到 api.mydomain.com URL,我将看到 CloudFlare 挑战并通过它。但是,如果我随后导航回我的 react.mydomain.com SPA,则 OPTIONS 请求将失败,因为它无法附加告诉 CloudFlare 它已通过的 cookie。
我不明白如何调整我的基础设施,以便我可以利用使用 JS 挑战。目前我被限制使用速率限制,但我发现当我变得足够严重以至于用户开始抱怨时,我仍然让大约 75% 或更多不需要的机器人流量通过。
几天前,在Cloudflare代理(橙色云,如果您知道Cloudflare)后面的1个Heroku应用程序上,我们收到错误消息“不支持CDN中的严格TLS”。
基本上,客户端对https://foo.example.com的请求是通过Cloudflare代理的,然后Cloudflare向https://foo.herokuapp.com发出请求,缓存响应,并将结果传递回客户端。请注意,整个链都是通过HTTPS进行的。我们已经将Clouflare配置为仅通过HTTPS与终端服务器通信,并且我们不希望终端服务器通过HTTP发送响应。
当Heroku的策略检测到您位于已经在处理SSL的代理后面时,似乎不再允许通过SSL进行服务。在过去的一周中,更多的应用程序开始显示此错误,我们不得不禁用Cloudflare的代理。这是他们的文档,给出的原因是“因为Cloudflare提供了SSL证书”。
其他人遇到此问题并有解决方法吗?尽管Cloudflare仍然可以阻止从客户端到Cloudflare的某些漏洞,但这仍使其他漏洞从Cloudflare到最终服务器都可以打开。
更新:我已经收到Heroku的回复:
ACM可以与Full或Flexible一起使用,并且可以与“ Full(Strict)”一起使用,但不建议这样做。ACM完成后,可以使用“完全(严格)”模式。如果需要“完全(严格)”,我们建议使用CA签发的具有CSR签名过程的长期证书。
但是,我没有发现上述说法是正确的。在任何设置(完全或严格)下,Heroku始终报告上述错误。我已经安装了Cloudflare的原始证书来解决此问题。
问题:
当我的网站设置为“我受到攻击”模式时,一旦用户通过 CloudFlare 屏幕,他们就会被重定向到我的网站,并使用一个大而长的查询获取参数:
?__cf_chl_jschl_tk__=63c51316f61a63e46f1639d6cf43f9d9b536adea-1587754610-0-AV-peahelegQeMeSrc_4ZJBUq47gdkX_QiS2eERoRTEODUjwbib2MM_73nQDAhukLbkspNpj01mv-Z-JteR4MpY4LUMm-yLJrPQKTX74DGYbZIs2utbp3_q4uozgzKpqcax10YESVKDhZgaWQYHGqBL9koIoasVOzKyvU7VQuKT1Nieo-i8DdXrV0IQf-nyI8KgWnxhYSVBOc-4WNrZzHQlEXFOpV45AGs10aMJyrs376HLRhNdV05MCj8oqMrexuQDtY7B3p7riHByYdB7GIgc
Run Code Online (Sandbox Code Playgroud)
为什么这是不好的:
建议的解决方案:
我认为避免这种情况的方法是检查是否设置了获取参数,然后重定向回删除参数的同一页面。(确保在设置时不会丢失任何其他查询参数)
我写了一个函数来实现这一点:
function checkAndRemoveCloudFlareParams() {
if (isset($_GET['__cf_chl_jschl_tk__']) && ! empty($_GET['__cf_chl_jschl_tk__'])
|| isset($_GET['__cf_chl_captcha_tk__']) && ! empty($_GET['__cf_chl_captcha_tk__'])) {
$new_uri = '?';
$uri = explode('?', $_SERVER['REQUEST_URI']);
$uri = $uri[0];
// Get any other params to put back on later
foreach ($_GET as $key => $var) {
if ($key !== '__cf_chl_jschl_tk__' && $key !== '__cf_chl_captcha_tk__') {
$new_uri .= $key . '=' …
Run Code Online (Sandbox Code Playgroud) Cloudflare 更改传入请求的 IP 地址,因为 Cloudflare 是我的网站和互联网之间的中间件,即代理。
我应该如何获取请求的初始 IP 地址,而不是 Cloudflare 的 IP 地址。我听说过,mod_cloudflare
但是这个插件是否只更新了我日志中的 ip 地址(?),而且我没有找到 nginx 的版本。
当在我的机器上本地使用邮递员时,我能够毫无问题地发送请求并得到响应。由于我发送 api 的令牌无效,我应该收到返回的令牌。
\n\n{\n "status": "Error",\n "message": "Invalid API Token"\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n使用邮递员的实用程序生成 php 卷曲代码来发出此请求我得到了这个。
\n\n\n$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n CURLOPT_URL => "https://app.mobilecause.com/api/v2/reports/transactions.json",\n CURLOPT_RETURNTRANSFER => true,\n CURLOPT_ENCODING => "",\n CURLOPT_MAXREDIRS => 10,\n CURLOPT_TIMEOUT => 30,\n CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n CURLOPT_CUSTOMREQUEST => "GET",\n CURLOPT_POSTFIELDS => "",\n CURLOPT_COOKIESESSION => true,\n CURLOPT_COOKIEFILE => "cookie.txt",\n CURLOPT_COOKIEJAR => "cookie.txt",\n CURLOPT_FOLLOWLOCATION => true,\n CURLOPT_RETURNTRANSFER => true,\n CURLOPT_HTTPHEADER => array(\n \'Authorization: Token token="test_token"\',\n "Content-Type: application/x-www-form-urlencoded",\n "cache-control: no-cache",\n ),\n));\n\ncurl_setopt($curl, CURLOPT_VERBOSE, true);\n\n$response = curl_exec($curl);\n$err = curl_error($curl);\n\ncurl_close($curl);\n\nif ($err) {\n echo "cURL …
Run Code Online (Sandbox Code Playgroud) 我有一个问题 --headless
Python Selenium for Chrome 模式。
代码
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
CHROME_DRIVER_DIR = "selenium/chromedriver"
chrome_options = webdriver.ChromeOptions()
caps = DesiredCapabilities().CHROME
chrome_options.add_argument("--disable-dev-shm-usage")
chrome_options.add_argument("--remote-debugging-port=9222")
chrome_options.add_argument("--headless") # Runs Chrome in headless mode.
chrome_options.add_argument('--no-sandbox') # # Bypass OS security model
chrome_options.add_argument("--disable-extensions")
chrome_options.add_argument("--disable-gpu")
browser = webdriver.Chrome(desired_capabilities=caps, executable_path=CHROME_DRIVER_DIR, options=chrome_options)
browser.get("https://www.manta.com/c/mm2956g/mashuda-contractors")
print(browser.page_source)
browser.quit()
Run Code Online (Sandbox Code Playgroud)
当我删除chrome_options.add_argument("--headless")
所有工作正常时,但是--headless*
有了下一个问题
Please enable cookies.
Error 1020 Ray ID: 53fd62b4087d8116 • 2019-12-04 11:19:28 UTC
Access denied
What happened?
This website is using a security service to …
Run Code Online (Sandbox Code Playgroud) python selenium cloudflare selenium-chromedriver google-chrome-headless
我正在尝试使用 puppeteer 抓取某个网站的一些初创公司数据,当我尝试导航到下一页时,cloudflare 等待屏幕出现并中断抓取。我尝试更改IP,但还是一样。有没有办法用 puppeteer 绕过它。
(async () => {
const browser = await puppeteer.launch({
headless: false,
defaultViewport: null,
});
const page = await browser.newPage();
page.setDefaultNavigationTimeout(0);
let links = [];
// initial page
await page.goto(`https://www.startupranking.com/top/india`, {
waitUntil: "networkidle0",
});
// looping through the url to different pages
for (let i = 2; i <= 7; i++) {
if (i === 3) {
console.log("waiting");
await page.waitFor(20000);
console.log("waited");
}
const onPageLinks = await page.$$eval("tr .name a", (arr) =>
arr.map((cur) => cur.href)
); …
Run Code Online (Sandbox Code Playgroud) 我是 Cloudflare Workers 的新手。
如何在 Cloudflare Workers 中设置 CORS?
response = await cache.match(cacheKey);
if (!response) {
// handle fetch data and cache
}
const myHeaders = new Headers();
myHeaders.set("Access-Control-Allow-Origin", event.request.headers.get("Origin"));
return new Response(JSON.stringify({
response
}), {
status: 200, headers: myHeaders
});
Run Code Online (Sandbox Code Playgroud) 使用 CloudFlare 等 CDN 提供商在边缘托管 SPA 应用程序(即 React),但在常规 VPS/专用服务器上提供 SPA 应用程序使用的 API 后端,是否有任何重要的好处?
更常见的方法似乎是在 CDN 上托管 SPA,并拥有 AWS Lambda 或 Cloudflare Workers 等无服务器后端。我的应用程序和后端目前都在美国数据中心的 DigitalOcean 之类的 VPS 上提供服务,但分析显示我的用户也来自地球的另一半。
是否值得将 React 应用程序从 VPS 服务器迁移到 CDN?
谢谢