小编was*_*ien的帖子

使用身份验证标头发出跨域请求

首先,服务器(不是我的)返回以下标头:

Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
Run Code Online (Sandbox Code Playgroud)

我正在尝试找出如何使用身份验证令牌将请求传递到站点。我正在本地 apache 服务器上运行代码。

这是我的代码:

function get_data(){
    var url = '$URL';
    var x = new XMLHttpRequest();
    x.open("GET", url, true)
     if (x.readyState == 4 && x.status == 200) {
        var responseText = x.responseText;
        console.log(responseText)
        };
    x.setRequestHeader("Authentication", "Bearer $TOKEN");
    x.withCredentials = true
    x.send()
}
Run Code Online (Sandbox Code Playgroud)

控制台返回:

XMLHttpRequest 无法加载 $URL。对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问来源“ http://localhost ”。响应的 HTTP 状态代码为 403。

在阅读文档时,我发现不允许手动设置标题。当我删除时,x.setRequestHeader("Authentication", "Bearer $TOKEN");我确实从服务器得到了答案(显然是身份验证错误)。那么我该如何将此信息添加到我的请求中呢?

服务器返回的标头:

Request URL:$serverurl
Request Method:OPTIONS
Status Code:403 Forbidden
Remote Address:$ipaddress
Response Headers
view source
Cache-Control:no-cache
Connection:close
Content-Type:text/html
Request Headers …
Run Code Online (Sandbox Code Playgroud)

javascript api xmlhttprequest

5
推荐指数
1
解决办法
1769
查看次数

BeautifulSoup - 摆脱段落空白/换行符

similarlist = res.find_all_next("div", class_="result-wrapper")
for item in similarlist:
    print(item)
Run Code Online (Sandbox Code Playgroud)

这将返回:

<div class="result-wrapper">
<div class="row-fluid result-row">
<div class="span6 result-left">
<p>
<a class="tooltipLink warn-cs" data-original-title="Listen" href="..." rel="tooltip"><i class="..."></i></a>
<a class="muted-link" href="/dictionary/german-english/aa-machen">Aa <b>machen</b></a>
</p>
</div>   
<div class="span6 result-right row-fluid">
<span class="span9">
<a class="muted-link" href="/dictionary/english-german/do-a-poo">to do a poo</a>, <a class="muted-link" href="/dictionary/english-german/pooh">to pooh</a>
</span>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)

当我选择打印时item.get_text(),我得到

abgeneigt machen
to disincline




abhängig machen
2137

to predicate




Absenker machen
to layer
Run Code Online (Sandbox Code Playgroud)

所以基本上我不需要的列表项之间有很多新行。这是因为<p>标签吗?我该如何摆脱它们?

python beautifulsoup

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

使用 axios 递归获取数据并链接结果

我有一个模式的 url http://www.data.com/1,其中末尾的 1 可以一直运行到未预定义的数字。它返回一个数组。我需要将我得到的所有数组连接成一个。

我的策略是递归执行 get-request,直到出现 404 错误,然后返回结果。

var returnArray = [];

function getData(count){
let p = axios.get(`http://www.data.com/${count}`).then(function(response){
  returnArray = returnArray.concat(response.data);
  return getData(count +1);
}
).catch(function() {
    Promise.resolve(returnArray);
}
)};
Run Code Online (Sandbox Code Playgroud)

然而,当我实现这个函数时,我的结果是未定义的。

getData(1).then((response) => console.log(response))
Run Code Online (Sandbox Code Playgroud)

做这个的最好方式是什么?

javascript promise axios

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

在创建对象后定义对象的子类型

假设我有以下课程:

public class Animal {
  public string name;
  public int age;
  public bool canBark;
}

public class Dog : Animal {
  }
Run Code Online (Sandbox Code Playgroud)

并实例化Animal如下:

Animal a = new Animal();
Run Code Online (Sandbox Code Playgroud)

无论如何Dog在创建实例后将该实例下转换为实例?还是我被迫认识到我AnimalDog在创造它的时候?我遇到此问题的原因是因为我的实例是通过调用工厂类创建的,该工厂类返回基于我提供的JSON文件的类型.该canBark属性值是通过查看该文件的几个看似不相关的领域进行计算.Dog通过查看canBark字段而不是那些JSON字段来确定某些内容是更有意义的.

public class AnimalFactory{
  public static Animal Create(JObject json){
    Animal a = new Animal();
    a.canBark = (json["someField"]["someOtherField"].ToString() == "abc")
    .....
}
Run Code Online (Sandbox Code Playgroud)

我现在通过在Dog类中使用构造函数来解决这个问题,该构造函数将其Animal作为参数并简单地将该实例的变量的值分配给它自己.但这不是一种非常灵活的方式,因为每次添加字段时我都需要在每个子类构造函数中添加一行.

那么,是通过将该决策移动到实例创建来确定类型的最佳方法还是还有其他方法?

c# java oop

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

运算符来衡量Python的差异

是否有运算符会查看整数之间的差异,而不是告诉我它们是大还是小?

例如,有没有办法让Python告诉我a和之间的差异b是否大于某个值,而不是计算if a是否大于b和/或b大于a

因此,如果我将比较5到10,它将返回5.

python operators

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

XPath translate() 函数和(分解)组合的 Unicode 字符

采用以下 XSLT 代码:

\n
<?xml version="1.0" encoding="UTF-8"?>\n<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"\n    version="2.0">\n    <xsl:output method="text"/>\n    <xsl:template match="/">\n        <xsl:value-of select="translate('abc', 'e\xcc\x81abc', 'eabc')"/>  <!--0x65CC81-->\n        <xsl:value-of select="'&#10;'"/>\n        <xsl:value-of select="translate('abc', '\xc3\xa9abc', 'eabc')"/>  <!--0xC3A9-->\n    </xsl:template>\n</xsl:stylesheet>\n
Run Code Online (Sandbox Code Playgroud)\n

使用 Saxon 10 运行此命令会返回:

\n
bc\nabc\n
Run Code Online (Sandbox Code Playgroud)\n

翻译函数的第一次调用使用 \xc3\xa9 的分解形式(U+0065 和 U+0301),而第二次调用则使用 U+00E9。看来他们并没有受到平等的对待。这是可以预料的吗?这种行为是否在某处指定?

\n

xslt xpath

0
推荐指数
1
解决办法
179
查看次数

标签 统计

javascript ×2

python ×2

api ×1

axios ×1

beautifulsoup ×1

c# ×1

java ×1

oop ×1

operators ×1

promise ×1

xmlhttprequest ×1

xpath ×1

xslt ×1