我正在尝试使用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)
这段代码有什么问题?
我正在为一个项目做一些测试,我想到的是涉及到附近的地方.所以我跟那个大家伙一起开始搞乱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一样好?
谢谢!
我刚刚在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
在Microsoft Edge中,window.close()关闭打印对话框后,在子窗口中不起作用.
重现步骤:
关闭打印对话框后,子窗口的关闭按钮不会关闭它.
<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) 我在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,还是可以与任何非同源源一起使用?
我目前正在尝试在我的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?
我在Javascript中使用Fetch API将大文件上传到服务器.Fetch API中是否有可用于跟踪上传进度的事件?
我有一个使用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)
这也不能解决问题; 错误消息保持不变.
如何解决这个问题?
我使用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) 首先我尝试了这个
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
javascript ×5
cors ×3
apache ×1
auth0 ×1
cookies ×1
dom ×1
fetch-api ×1
http-headers ×1
jquery ×1
node.js ×1
php ×1
python ×1
reactjs ×1
recursion ×1
spring-boot ×1
try-except ×1
upload ×1
vue-resource ×1
vue.js ×1
vuejs2 ×1
webpack ×1
xml ×1
xpath ×1