小编sid*_*ker的帖子

使用Fetch API以json格式获取闪烁提要

我设法通过使用$ .getJSON从闪烁提要api获取json响应,但是当我尝试使用Fetch时,我似乎只获得了XML响应.

这有效:

var flickerAPI = "http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?";
$.getJSON(flickerAPI, {
                    tags: "searchTerm",
                    tagmode: "any",
                    format: "json"
                })
                .done(function (data) {
                   //....
                });
Run Code Online (Sandbox Code Playgroud)

这不起作用:

var flickerAPI = "http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?";

var request = new Request(flickerAPI, { 
                mode: 'no-cors',
                tags: 'searchTerm',
                tagmode: 'any',
                format: 'json'
            });

            fetch(request)
                .then(function (res) {
                    return res.json();
                })
                .then(function (text) {
                    console.log(text);
                });
Run Code Online (Sandbox Code Playgroud)

我还想了解为什么在使用Fetch API时我得到:"请求资源上没有'Access-Control-Allow-Origin'标头.因此不允许原点'null'访问.如果提供不透明的响应您的需求,将请求的模式设置为'no-cors'以获取禁用CORS的资源." 并且当使用$ .getJSON时没有.谢谢 !!

javascript json flicker cors fetch-api

6
推荐指数
1
解决办法
1137
查看次数

当我使用 ng build 时,proxy.config.json 在 Angular 4/5 中不起作用

我正在使用代理 api 设置来进行 angular 5 中的 API 调用,如本网站所述。https://juristr.com/blog/2016/11/configure-proxy-api-angular-cli/ 当我使用 npm start 时,这可以正常工作。但是当我构建它并将其托管在 IIS 上时。它不工作。我相信 proxy.config.json 没有添加到 dist 文件夹中。

build angular

6
推荐指数
2
解决办法
8616
查看次数

如何在Python中使字符串解析不那么笨拙?

如果问题标题过于模糊,请道歉 - 欢迎编辑.

我正在尝试使用BeautifulSoup解析XML,但因为每个函数调用都可以返回None,所以我必须在多行上解析单个元素.这很快变得笨拙:

books_count = result.books_count

if not books_count:
    return None

books_count = books_count.string

if not books_count:
    return None

books_count = int(books_count)

if not books_count:
    return None
Run Code Online (Sandbox Code Playgroud)

在Swift中做同样的事情,这是一种我更熟悉的语言,它更清晰:

guard let booksCountString = result.booksCount?.string,
    let booksCountInt = Int(booksCountString) else {
    return nil
}
Run Code Online (Sandbox Code Playgroud)

有没有类似的方法我可以用Python做到这一点?我想避免使用try/catch导致它在我的代码中不断出现运行时错误并不是一种好的做法.

python string parsing beautifulsoup

6
推荐指数
1
解决办法
89
查看次数

Android React Native 中的 superagent 中的“网络已离线,Access-Control-Allow-Origin 不允许 Origin,页面正在卸载”

我用来superagent从我的 React Native 应用程序上传文件。它在 iOS 上运行得很好,但在 Android 上却出现了这个错误:

可能原因:网络离线、Access-Control-Allow-Origin不允许Origin、页面正在卸载等。

我在这里创建了一个最小的示例https://snack.expo.io/@twohill/upload-example并复制了下面的代码,以防零食消失:

import React, { Component } from 'react';
import { Text, View, StyleSheet, TouchableOpacity } from 'react-native';
import Constants from 'expo-constants';
import * as DocumentPicker from 'expo-document-picker';
import superagent from 'superagent';

import AssetExample from './components/AssetExample';
import { Card } from 'react-native-paper';

const upload = (file, setMessage) => {
  const { name } = file;

  superagent.post('https://example.org/uploads') // <-- change this URL to your server that accepts uploads and …
Run Code Online (Sandbox Code Playgroud)

javascript superagent react-native

6
推荐指数
1
解决办法
2万
查看次数

JavaScript 的 .setSelectionRange() 与 React Hooks 不兼容吗?

这个问题改进了 r/reactjs 上的一个问题。

我有一个控件input,我可以通过编程方式更改其值。我想使用它.setSelectionRange()来保持输入中的插入符位置。

但这不起作用:默认情况下,每次重新渲染都会自动将选择范围设置为输入的末尾。

此沙箱中说明了该问题,原始问题的作者以 10 毫秒的setTimeout()延迟修复了该问题。

如何在不使用与 Hooks 不兼容的setTimeout()or 的情况下实现此目的?getSnapshotBeforeUpdate()

javascript html-input reactjs react-hooks

6
推荐指数
1
解决办法
8030
查看次数

如何从 Chromium 浏览器拦截 Skia 绘制命令

这是我的一个与远程浏览器隔离相关的实验项目。我试图在正在运行的 Chromium 实例中拦截Skia绘制命令,然后通过CanvasKit(Skia 的 WebAssembly 构建)在客户端的不同浏览器实例中重播它们。

然而,我很难弄清楚在 Chromium 源代码中在哪里以及如何拦截这些绘制命令。非常感谢任何有关如何解决我的问题的建议!

browser chromium skia webassembly canvaskit

6
推荐指数
1
解决办法
857
查看次数

尽管配置了正确的 CORS 标头,但仍出现 301 响应“跨源请求被阻止”

我正在使用其公共 api 访问 NASA 图片,但收到此错误:

\n\n
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at\n[nasa api website] (Reason: CORS header \xe2\x80\x98Access-Control-Allow-Origin\xe2\x80\x99 missing).\n
Run Code Online (Sandbox Code Playgroud)\n\n

但是当我检查他们的响应头时, \xe2\x80\x98Access-Control-Allow-Origin\xe2\x80\x99 存在并设置为 \'*\',在这里你可以看到它:

\n\n

响应标头:

\n\n
Access-Control-Allow-Origin *\nAge 0\nCache-Control   max-age=0, private, must-revalidate\nContent-Encoding    gzip\nContent-Type    application/json; charset=utf-8\nDate    Sat, 28 Mar 2020 14:37:13 GMT\nEtag    W/"e26hidden..."\nReferrer-Policy strict-origin-when-cross-origin\nServer  openresty\nStrict-Transport-Security   max-age=31536000; includeSubDomains\nVary    Origin\nVia https/1.1 api-umbrella (ApacheTrafficServer [cMsSf ]), 1.1 vegur\nX-Cache MISS\nX-Content-Type-Options  nosniff\nX-Download-Options  noopen\nX-Frame-Options SAMEORIGIN\nX-Permitted-Cross-Domain-Policies   none\nX-RateLimit-Limit   1000\nX-RateLimit-Remaining   999\nX-Request-Id    00c8c415-37ad-474b-bfbd-8e968d60f37f\nX-Runtime   0.125778\nX-Xss-Protection    1; mode=block\n
Run Code Online (Sandbox Code Playgroud)\n\n

请求标头:

\n\n
Accept  text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding gzip, deflate, …
Run Code Online (Sandbox Code Playgroud)

javascript xmlhttprequest cors http-status-code-301

6
推荐指数
1
解决办法
7575
查看次数

与 FastAPI 一起使用时无法识别 CSS

我构建了一个 FastAPI 应用程序和一个在直接打开时可以工作的索引、css 和 js 文件,但是在使用 FastAPI 提供服务时我无法显示 css 文件。如果问题是 CORS 问题,我已尝试进行故障排除,我已尝试重新排列文件以使其位于相同或不同的目录中(并相应地重新指定 href 路径),但没有任何效果。这是我此时的目录:

working_directory
??? app
|__ index.html
    ??? style.css
    ??? main.js
Run Code Online (Sandbox Code Playgroud)

像这样设置应用程序主页路线:

file_path = "index.html"

@app.get("/")
async def home():
    return FileResponse(file_path)
Run Code Online (Sandbox Code Playgroud)

我是否还需要在 file_path 变量中提供 css 文件的路径?到目前为止,我尝试过的格式还没有奏效,并且 FastAPI 的错误没有像 Flask 或 Django 那样记录得很好,例如。

我的错误如下: GET http://localhost:8000/style.css net::ERR_ABORTED 404 (Not Found)

我如何让网络应用程序识别我的 style.css 文件?

http-status-code-404 fastapi

6
推荐指数
1
解决办法
1661
查看次数

SCORM:安全错误:阻止具有来源的框架访问同一来源的跨来源框架

我知道有很多类似的问题,唯一的区别是我从 **同一 ** 域提供的两个页面都得到了这个问题。这可以在下面的示例中看到。

    Uncaught DOMException: Blocked a frame with origin "https://content.samba.net" from accessing a cross-origin frame. 
  
at findAPI (https://content.samba.net/00/07/19-10/scorm_support/scorm_support.js:14:10)   
at getAPI (https://content.samba.net/00/07/19-10/scorm_support/scorm_support.js:61:13)   
at https://content.samba.net/00/07/19-10/SCORM.htm:200:16
Run Code Online (Sandbox Code Playgroud)

这种情况不应该只发生在不同域之间吗?

================================编辑=================== ====================
当然,在我发布几秒钟后,我发现了这个问题。SCORM 包具有定位 SCORM API 的功能。它看起来像顶部和开启器。就我而言,开窗器位于不同的域中,它试图访问该域。
为了历史的缘故,我会把它留下来。我的回答有详细信息。

javascript iframe cross-domain scorm same-origin-policy

6
推荐指数
1
解决办法
3713
查看次数

使用 NextAuth 跨多个域 (CORS) 进行身份验证

我想做一个从domain1.com到domain2.com的XHR。domain2.com 是一个使用 NextAuth 的 NextJS 应用程序。

问题是,当我执行此请求时,domain2 的 cookie 不包括在内。我的代码是:

var httpRequest = new XMLHttpRequest();
httpRequest.onreadystatechange = function(){
  if (httpRequest.readyState === XMLHttpRequest.DONE) {
    if (httpRequest.status === 200) {
      alert('send successful')
    } else {
      alert('Error:' + httpRequest.responseText)
    }
  }
};
httpRequest.withCredentials = true;
httpRequest.open('GET', url, true);
httpRequest.send();
Run Code Online (Sandbox Code Playgroud)

服务器代码:

  const session = await getSession({ req })
  if(session == undefined || session.accessToken == undefined) { 
    res.statusCode = 500;
    res.send(JSON.stringify({'error': 'Not logged in'}));
    return;
  }
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

cookies cross-domain next.js next-auth

6
推荐指数
1
解决办法
5275
查看次数