小编sid*_*ker的帖子

带有dom文档的xpath

我正在尝试使用xpath查询查找xml节点.但我不能让它工作.在Firefox中,结果总是"未定义",并且chrome会抛出错误代码.

<script type="text/javascript">

var xmlString = '<form><name>test</name></form>';
var doc = new DOMParser().parseFromString(xmlString,'text/xml');

var result = doc.evaluate('/form/name', doc, 
                          null, XPathResult.ANY_TYPE, null);

alert(result.stringValue);

</script>
Run Code Online (Sandbox Code Playgroud)

这段代码有什么问题?

javascript xml xpath dom document.evaluate

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

Google的Places API和JQuery请求 - Access-Control-Allow-Origin不允许使用Origin http:// localhost

我正在为一个项目做一些测试,我想到的是涉及到附近的地方.所以我跟那个大家伙一起开始搞乱Google的Places Api.我正在使用带有openstreet瓷砖的传单来制作我的地图.现在一切都很好,直到我尝试使用dang的东西.

var lat = coords.lat;
var lng = coords.lng;
var apiUrl = "https://maps.googleapis.com/maps/api/place/nearbysearch/json";
var data = {
    key: 'AIzaSyBl8bmE8kQT7RjoXhP6k2yDti44h9-fSUI',
    location: lat+','+lng,
    radius: '10000',
    sensor: 'false',
    rankby: 'prominence',
    types: 'bar|night_club'
};
$.ajax({
  url: apiUrl,
  type: 'POST',
  data: data,    
  dataType:"jsonp",
  crossDomain: true,
  success: function(data) {
            var obj = $.parseJSON(data);
                // console.log(data.next_page_token);
          }
});
Run Code Online (Sandbox Code Playgroud)

更改dataType属性json我得到Origin http://localhost is not allowed by Access-Control-Allow-Origin.使用jsonp我得到一个解析错误Unexpected token :Obviusly $.parseJSON不起作用...有没有办法使这项工作,而不必使用谷歌地图Api?如果答案是否定的......是否有其他地方api和google一样好?

谢谢!

javascript jquery cors google-places-api

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

PHP(Apache)静默地将HTTP 429和其他转换为500

我刚刚在PHP的header()方法中发现了一个奇怪的地方,默默地将我的一些状态转换为500.由于我在各种网络搜索中没有找到提及这种行为的运气,我在这里添加它是为了拯救他人一些恶化,还要询问是否有人发现了一个比我想出的更好的解决方法(使用PHP或Zend1).

给出一个简单的PHP脚本,如:

<?php
header('HTTP/1.1 429');
echo "Too Many Requests\n";
Run Code Online (Sandbox Code Playgroud)

我希望得到类似的东西:

HTTP/1.1 429
Date: Thu, 18 Jul 2013 22:19:45 GMT
Content-Length: 11
Content-Type: text/html; charset=UTF-8

Too Many Requests
Run Code Online (Sandbox Code Playgroud)

相反,它实际上返回:

HTTP/1.1 500 Internal Server Error
Date: Thu, 18 Jul 2013 22:19:45 GMT
Content-Length: 11
Content-Type: text/html; charset=UTF-8

Too Many Requests
Run Code Online (Sandbox Code Playgroud)

除此之外,我的apache错误日志中没有事件,访问日志显示正确的状态代码(因此与发送到浏览器的内容不同):

$IP - - [18/Jul/2013:16:31:34 -0700] "GET /test/429.php HTTP/1.1" 429 11 "-" "curl/7.30.0"
Run Code Online (Sandbox Code Playgroud)

使用许多其他状态代码(如401,420,426)进行测试时,一切正常.

如果我是明确的并发送标题('HTTP/1.1 429 Too Many Requests'),一切也可以正常工作; 这将是一个有用的解决方法,除了我使用Zend Framework并且其setHttpResponseCode方法需要一个整数,它用作php的header()函数的第三个参数.

我已经发现它似乎特别适用于RFC 6585中添加的状态(请参阅https://github.com/php/php-src/pull/274),尽管我有点困惑为什么像426这样的状态工作当他们显然没有出现在5.4.14和5.4.16的源代码中(我测试过的两个版本),但是像429这样的非功能性版本.

更新:

正如答案所示,这主要是Apache问题,而不是PHP,我已相应更新了标题.最有趣的似乎是,这仅在某些版本的Apache中得到修复(旧版和新版之间没有明显的一致性).我相信有问题的上游问题在这里:https://issues.apache.org/bugzilla/show_bug.cgi?id = 44995

php apache http-headers http-status-code-429

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

window.close()无法在Microsoft Edge浏览器中运行

在Microsoft Edge中,window.close()关闭打印对话框后,在子窗口中不起作用.

重现步骤:

  1. 从子窗口打开打印对话框.
  2. 关闭它.

关闭打印对话框后,子窗口的关闭按钮不会关闭它.

父窗口代码:

    <script type="text/javascript">
    function openChild(){ 
       window.open("childWindow.html", "", "width=600, height=400"); 
    }
    </script>
    </head>
    <body>
        <input type="button" value="Open Child Window" onclick="openChild()" />
    </body>
Run Code Online (Sandbox Code Playgroud)

子窗口代码:

<script type="text/javascript">
    function closeWindow(){
        window.close();
    }
    function printPage() {
        window.print();
    }
    </script>
    </head>
    <body>
        <input type="button" value="Print" onclick="printPage()" />
        <input type="button" value="Close Window" onclick="closeWindow()" style="float: right" />
    </body>
Run Code Online (Sandbox Code Playgroud)

javascript microsoft-edge

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

HTML中的integrity属性的目的是什么?

我在bootstrap的网站上,我最近注意到他们的CDN链接包含一个带有SHA-384密钥的完整性属性.

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
Run Code Online (Sandbox Code Playgroud)

我认为这是一种验证脚本源的方法,但更多的是我想知道它是如何使用的,如果这是任何规范的一部分?

此外,这只适用于脚本src,还是可以与任何非同源源一起使用?

javascript twitter-bootstrap subresource-integrity

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

Auth0和React的CORS问题

我目前正在尝试在我的NodeJS + React App中实现Auth0.虽然我有一个很大的问题,但本教程非常有用且有用.每当我尝试通过Auth0登录/注册时,我都会得到

XMLHttpRequest无法加载 https://XYZ.eu.auth0.com/usernamepassword/login.对预检请求的响应未通过访问控制检查:请求的资源上不存在"Access-Control-Allow-Origin"标头.因此不允许来源' http:// localhost:3000 '访问.对预检请求的响应未通过访问控制检查:请求的资源上不存在"Access-Control-Allow-Origin"标头.因此不允许来源' http:// localhost:3000 '访问.

所以我粗略地理解这意味着什么.但我只是不知道在哪里设置所需的选项以允许此请求到Auth0.在服务器端?在浏览器代码中?

最好的祝福


编辑:正如RodrigoLópezDato指出的那样,我可以在我的应用程序中编写Origins:https://manage.auth0.com/#/applications

我在本地开发时应该把它放在那里?我的IP?

node.js cors reactjs auth0

10
推荐指数
2
解决办法
8849
查看次数

使用Javascript中的Fetch API上传文件并显示进度

我在Javascript中使用Fetch API将大文件上传到服务器.Fetch API中是否有可用于跟踪上传进度的事件?

javascript upload fetch-api

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

在客户端设置Access-Control-Allow-Origin后,即使出现CORS错误

我有一个使用webpack-simple选项生成的Vue应用程序.我正在尝试发出GET请求,https://api.forismatic.com/api/1.0/?method=getQuote&format=json&lang=en但我收到错误:

XMLHttpRequest无法加载 https://api.forismatic.com/api/1.0/?method=getQuote&format=json&lang=en.对预检请求的响应未通过访问控制检查:请求的资源上不存在"Access-Control-Allow-Origin"标头.http://127.0.0.1:8080因此,不允许访问" 来源" .

我正在使用vue-resource并添加了:

Vue.http.headers.common['Access-Control-Allow-Origin'] = '*'
Run Code Online (Sandbox Code Playgroud)

那没有效果.

我还在以下devServer选项中添加了这个webpack.config.js:

devServer: {
  historyApiFallback: true,
  noInfo: true,
  headers: {
    "Access-Control-Allow-Origin": "*"
  }
}
Run Code Online (Sandbox Code Playgroud)

这也不能解决问题; 错误消息保持不变.

如何解决这个问题?

cors webpack vue.js webpack-dev-server vue-resource

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

Spring Security身份验证跨域使用Cookie与Authorization标头

我使用Spring Security来验证我的REST API.身份验证工作正常,Spring Security返回一个令牌Set-Cookie.该rememberMe功能已打开,并在cookie中返回相同的内容.

当我发出后续请求时,除非我在Authorization标题中发送用户名/密码,否则身份验证将失败,而当我在邮递员中测试时,它会起作用.我看到它JSESSIONID在请求中添加了cookie.

由于cookie是Http-Onlycookie,我不认为我可以在我的JavaScript函数中读取它们.

那么我该如何验证用户?我假设如果服务器返回一个cookie set-cookie,浏览器应该自动为每个请求附加它.

登录客户端请求:

context.$http.get(url, {
    headers:
    {
      'Access-Control-Allow-Origin': '*',
      'Access-Control-Allow-Methods': 'GET,PUT,POST,DELETE',
      'Authorization': auth
    }
  }
Run Code Online (Sandbox Code Playgroud)

请求标头:

Accept:*/*
Accept-Encoding:gzip, deflate, br
Accept-Language:en-GB,en;q=0.8,fr;q=0.6,en-US;q=0.4
Access-Control-Request-Headers:access-control-allow-methods,access-control-allow-origin,authorization
Access-Control-Request-Method:GET
Connection:keep-alive
DNT:1
Host:localhost:9000
Origin:http://localhost:8080
Referer:http://localhost:8080/login?redirect=%2F
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36
Run Code Online (Sandbox Code Playgroud)

响应标头:

Access-Control-Allow-Credentials:true
Access-Control-Allow-Origin:http://localhost:8080
Cache-Control:no-cache, no-store, max-age=0, must-revalidate
Content-Length:13
Content-Type:application/json;charset=UTF-8
Date:Fri, 18 Aug 2017 05:40:55 GMT
Expires:0
Pragma:no-cache
Set-Cookie:remember-me=dTVTMi94dnVkQzJtYXRFYmJkR1VKZz09OjA1T1F4RXVOV0RiTEx4VFdUSVByeGc9PQ; Max-Age=86400; Expires=Sat, 19-Aug-2017 05:40:55 …
Run Code Online (Sandbox Code Playgroud)

cookies spring-security spring-boot vuejs2

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

为什么 3.10 中按预期抛出 RecursionError 的代码在早期版本中不会抛出?

首先我尝试了这个

def x():
   try:
      1/0 # just an division error to get an exception
   except:
      x()
Run Code Online (Sandbox Code Playgroud)

这段代码在 3.10 中表现正常,并且得到了我RecursionError: maximum recursion depth exceeded预期的结果,但 3.8 出现了堆栈溢出,并且无法正确处理递归错误。RecursionError但我确实记得旧版本的Python中也有,所以我尝试了

def x(): x()
Run Code Online (Sandbox Code Playgroud)

RecursionError这在两个版本的 Python 中都有体现。

就好像(在第一个片段中)递归错误永远不会在 except 中抛出,而是在调用的函数中抛出,然后在调用但由 try- except 处理的函数的第一条指令处抛出错误。

然后我尝试了其他方法:

def x():
   try:
      x()
   except:
      x()
Run Code Online (Sandbox Code Playgroud)

这在某种程度上更奇怪,3.10 以下的堆栈溢出,但在 3.10 中它陷入了循环

你能解释一下这种行为吗?

更新@MisterMiyagi 发现了一个更奇怪的行为,在 except in 中添加语句<=python3.9不会导致 stackoverflow

def x():
   try:
      1/0
   except:
      print("")
      x()
Run Code Online (Sandbox Code Playgroud)

python stack-overflow recursion try-except pythoninterpreter

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