Tag: JavaScript

不能处理在Ajaxredirect302,为什么?

我有一个使用Forms Authentication在asp.net mvc中编写的后端服务器。 当用户没有通过身份validation时,服务器将自动发送302redirect到login操作并返回login页面。 在客户端,我有一个项目列表。 这个列表只能被authentication的用户访问。 在页面上,我有一个使用Ajax刷新列表的button(jQuery的$ .ajax函数)。 现在,我的问题是身份validation票证超时,用户点击刷新button: 我的函数发送一个ajax请求来获取刷新列表 服务器检测到身份validation票据无效并发出302redirect。 浏览器自动处理这个302响应,并强制我的ajax函数发送另一个ajax请求到Login动作,最后的结果是一个状态为200的HTML。我的脚本很混乱,因为这个列表也是一个状态为200的HTML。 我想要的是,当身份validation票证超时,用户点击刷新button,我应该能够检测到,并显示一条消息,要求用户login。 我尝试通过在Login操作中添加自定义标题(IS_LOGIN)来解决这个问题,并检查我的ajax响应。 但这不是一个好的解决scheme。 所以我的问题是: 处理这个问题的最好方法是什么? 为什么浏览器不让脚本处理302响应? 并自动强制我们的ajax创build另一个请求。 这是浏览器或jQuery库的问题? 有什么理由呢? (安全,…) 感谢您的回复。

在IE中localStorage对象是未定义的

我在我的JS应用程序中使用localStorage,我想知道为什么IE9声称localStorage == undefined 。 据我所知,IE8支持它,在这里有什么办法让它在新版本中工作?

为input文件表单设置默认值

可能重复: dynamic设置文件input的值 我有一个input文件的HTML表单,我想在HTML表单中设置文件path的初始值。 我试图改变标签“价值”,但它无法正常工作。 <input type="file" name="testcase" value= "C:\test.txt"> 请给我一些关于这个小问题的build议。 谢谢。

Ajax jQuery的成功范围

我有这个ajax调用一个doop.php 。 function doop(){ var old = $(this).siblings('.old').html(); var new = $(this).siblings('.new').val(); $.ajax({ url: 'doop.php', type: 'POST', data: 'before=' + old + '&after=' + new, success: function(resp) { if(resp == 1) { $(this).siblings('.old').html(new); } } }); return false; } 我的问题是$(this).siblings('.old').html(new); 线路没有做它应该做的事情。 谢谢..所有有用的意见/答案都被投票了。 更新:似乎一半的问题是范围(谢谢你的答案,帮助我澄清),但另一半是,我试图以同步方式使用Ajax。 我创build了一个新post

Javascriptclosures – variables范围的问题

我正在阅读closuresMozilla开发者网站,我注意到在他们的例子中常见的错误,他们有这样的代码: <p id="help">Helpful notes will appear here</p> <p>E-mail: <input type="text" id="email" name="email"></p> <p>Name: <input type="text" id="name" name="name"></p> <p>Age: <input type="text" id="age" name="age"></p> 和 function showHelp(help) { document.getElementById('help').innerHTML = help; } function setupHelp() { var helpText = [ {'id': 'email', 'help': 'Your e-mail address'}, {'id': 'name', 'help': 'Your full name'}, {'id': 'age', 'help': 'Your age (you […]

如何检测用户何时在input字段中按Enter键

我只有1个input字段,我想注册onChange和onKeyPress事件来检测用户何时完成input或按Enter键。 我只需要使用JavaScript。 谢谢您的帮助。 我有: var load = function (){ //I want to trigger this function when user hit Enter key. } document.getElementById('co').onchange=load; //works great document.getElementById('co').onKeyPress=load; //not sure how to detect when user press Enter HTML //no form just a single input field <input type='text' id='co'>

捕获在Android虚拟键盘上使用JavaScript键入的键

我有一个带有textarea的网页,我需要捕获用户键入的键(以便我可以用键入的键replace不同的Unicode字符)。 我目前的代码如下: $("#myTextArea").bind('keypress', function(event) { var keyInput = event.which; // call other functions }); 以上代码适用于PC和iPhone / Safari。 但是, 在Android (三星)平板电脑上使用Chrome时会失败 。 出于某种原因,当我在android虚拟(软)键盘上键入时,不会触发“按键”事件 。 Android版本是5.0.2。 如果我尝试使用“keyUp”或“keyDown”,那么对于所有的字符 (除了返回键,空格,退格键等) 总是返回229 。 即使keyCode始终为229,textarea也会显示用户input的正确字符。 这意味着设备知道哪个键被input,但不知何故,我无法得到处理这个事件(和关键代码)使用JavaScript。 以下是我迄今尝试过的替代scheme及其结果: $("#mainTextArea").on("keydown keyup", function(event) { // event.which and event.keyCode both return 229 $(document).on('keypress', function(event) { // function is not triggered $('#myTextArea').bind('input keypress', function(event) { // […]

CORS错误在同一个域?

我现在正在遇到一个奇怪的CORS问题。 这里是错误信息: XMLHttpRequest cannot load http://localhost:8666/routeREST/select?q=[…] Origin http://localhost:8080 is not allowed by Access-Control-Allow-Origin 两台服务器: localhost:8666 / routeREST /:这是一个简单的Python Bottle服务器。 localhost:8080 /:Python simpleHTTPserver,我运行Javascript应用程序。 这个应用程序正在上面的服务器上执行Ajax请求。 任何想到可能是什么问题? 编辑: 而…港口是问题。 感谢您的回答:) 如果有人使用Python瓶服务器,你可以按照这个post给出的答案来解决CORS问题: Bottle Py:为jQuery AJAX请求启用CORS

是否有JavaScript的十进制math库?

有没有一个成熟的图书馆做基于十进制的math,可能是任意的精度,在JavaScript中? 编辑:我想要这个信息的浮点相关问题的参考页面和二进制浮点不合适时使用的替代品: http : //floating-point-gui.de/

带有新行的JavaScriptstring – 但不能使用\ n

我有一个string中有新的行。我想将这些转换为HTML <br> s,但我很难检测到他们。 想象一下这样的JavaScriptstring: var foo = "Bob is cool"; 他们是我需要检测的新线。 他们没有使用\n特殊字符 – 他们只是普通的格式。