标签: xmlhttprequest

从Google Translate API获取中文罗马化

Google语言翻译API可以干净利落地翻译成中文:

<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script>
  google.load('language','1');
  function googletrans(text) {
    google.language.translate(text,'en','zh',function(result) {
      alert(result.translation);
    });
  }
</script>
<input onchange="googletrans(this.value);">
Example input: "Hello"
Result: "??"
Run Code Online (Sandbox Code Playgroud)

我的问题是我无法获得罗马化(使用英文字母发音).这是一个已知问题.

现在数据就在translate.google.com上(示例输入:"Hello"结果:"Nǐhǎo"),我甚至可以通过将浏览器指向以下内容来查看:

http://translate.google.com/translate_a/t?client=t&text=hello&hl=en&sl=en&tl=zh-CN&otf=2&pc=0
Result:
{"sentences":[{"trans":"??","orig":"hello","translit":"N? h?o"}],
 "dict":[{"pos":"interjection","terms":["?"]}],"src":"en"}
Run Code Online (Sandbox Code Playgroud)

但不知何故,当我尝试使用ajax获取此URL时,它失败了(XMLHttpRequest Exception 101).有没有办法用ajax检索这个罗马化数据?

ajax xmlhttprequest google-translate

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

jqXHR - http-status-code-403(但状态码为0)

我得到状态代码0 ...但它是代码403.谁能告诉我问题是什么?

JQUERY

  var jqxhr = $.ajax({
        url: 'http://gdata.youtube.com/feeds/api/users/bernd/favorites?alt=json',
        dataType: 'json'
    }).success(function(xhr) {
        alert(xhr.status);
    }).error(function(xhr) {
        alert(xhr.status);
        return false;
    })
Run Code Online (Sandbox Code Playgroud)

演示 - > http://jsfiddle.net/QFuBr/

提前致谢!
彼得

javascript jquery xmlhttprequest http-status-code-403

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

在不是100%AJAX的Ajax应用程序中使用HTTP身份验证的最佳方法是什么

我有一个标准的HTML登录页面,我宁愿使用它而不是浏览器提供的标准HTTP身份验证弹出窗口.今天,我在登录后使用会话cookie跟踪会话,但我希望无状态并且每次都通过HTTP身份验证.我正在尝试的Web服务已经支持这一点,所以这是一个仅限浏览器的问题.

在jQuery中添加身份验证凭据是微不足道的,但我不知道如何保留它们.如果您从登录页面(jsp)转到主页(另一个jsp),您显然不会保留登录页面中的用户名和密码字段.我知道如果您从弹出窗口输入它们,某些浏览器将存储您的HTTP身份验证凭据,但我不知道它们是否在使用XHRRequest时被存储.如果他们这样做,浏览器之间是否有很多一致性?

此外,用户也需要能够"退出"应用程序.如果浏览器存储身份验证凭据,是否有办法使用JavaScript清除它们.

我觉得我不能成为第一个试图解决这个问题的人.是否有一些jQuery插件或已经处理过的东西?或者根本不可能做我想做的事情?

ajax jquery xmlhttprequest http-authentication stateless-session

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

解释XMLHttpRequest创建

我正在从w3schools学习XMLHttpRequest.我不明白以下代码片段.什么window.XMLHttpRequest意味着什么?是真是假?整个if/else结构是否仅用于考虑ie6和ie5,如果是这样,它们都可以被一行读取xmlhttp = new XMLHttpRequest()吗?

 if (window.XMLHttpRequest) {
     // code for IE7+, Firefox, Chrome, Opera, Safari
     xmlhttp = new XMLHttpRequest();
 } else {
     // code for IE6, IE5
     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
 }
Run Code Online (Sandbox Code Playgroud)

xmlhttprequest

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

如何VBA捕获请求超时错误?

我正在使用对象MSXML2.ServerXMLHTTP60向webservice发送请求; 有了这个对象,我可以通过异步方法加速数据加载,并避免锁定Excel屏幕(没有响应).但是,我仍然有一个问题,当webservice响应很长一段时间,出于ServerXMLHTTP60超时设置,请求函数是默默的,我无法捕获超时错误.在另一个问题上,@ osknows建议使用xmlhttp status = 408捕捉超时错误,但它对我不起作用.

我已经准备好了一个测试文件,你可以在这里下载.按下打开VBA源代码Atl + F8,您将看到CXMLHTTPHandler我从本指南中复制的类模块

    If m_xmlHttp.readyState = 4 Then
        If m_xmlHttp.Status = 200 Then
            MsgBox m_xmlHttp.responseText
        ElseIf m_xmlHttp.Status = 408 Then 'Debug never run to here?
            MsgBox "Request timeout"
        Else
         'Error happened
        End If
    End If
Run Code Online (Sandbox Code Playgroud)

如何VBA捕获请求超时错误?

谢谢您帮忙!

xml excel vba timeout xmlhttprequest

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

如何在使用定期AJAX/XMLHttpRequest调用时修复浏览器的内存增长?

我花了整个周末在我用Dojo编写的Web应用程序中详细说明了内存增长问题.

Web应用程序将"永远运行",因此不会重新启动浏览器.

该应用程序定期更新服务器(无跨域)的动态数据; 每5秒钟,进行一次AJAX调用以将新数据检索为JSON.

通过让应用程序运行几个小时,我观察到浏览器内存不断增长(最新的Chrome和Firefox,无论是在最新的Windows和Mac OS X上).

起初,我认为Dojo导致了这种行为.事实上,通过使用XMLHttpRequest对象切换到本机实现,我可以大大减少内存增长,但它仍然存在.随着每个AJAX请求,内存增长一点点(大约4-8KB).

我已经尝试过的:

我有...

  • ...试图使用其他框架,如jQuery,YUI等- 没有效果
  • ...切换到使用原生`XMLHttpRequest`对象- 帮了很多,但并非完全
  • ...在检索数据后停用DOM操作- 没有效果
  • ...通过设置为"null"重置`xhr`并在每次迭代后删除它- 没有效果
  • ...在每次迭代后将onreadystatechange处理程序重置为null或空方法- 无效
  • ...重用了`xhr`对象和`onreadystatechange`处理程序,因为它始终是相同的- 没有效果

因此即使我没有做任何事情(如下面第一个StackOverflow链接中所述)加载的数据,内存使用量也会增加:

我已经读过的内容:

我的测试HTML代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Native XHR Async</title>
</head>
<body>
<script>

var update = document.createElement("div");
document.body.appendChild(update);

var timeout = null;
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = onReadyState;

function loadData()
{
    xhr.open("GET","memory-leak.json?" + new Date().getTime());
    xhr.send(null);
}

function onReadyState()
{
   if (this.readyState === …
Run Code Online (Sandbox Code Playgroud)

ajax memory-leaks refresh xmlhttprequest intervals

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

在同一个域中发送没有cookie的ajax请求?

我看到google或twitter autosuggest发送的ajax请求非常轻量级,因为它们不会发送任何带有请求的cookie.我想知道他们是怎么做到的?我搜索了一些方法,但我找到了通过CORS发送的方式,但他们将请求发送到同一个域.

关于如何做到这一点的任何想法或方法.我正在使用铬.

提前致谢

cookies ajax jquery http xmlhttprequest

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

XmlHttpRequest.onload未调用

我正在玩这个XmlHttpRequest东西.在一些教程和书籍中,它是onload在请求完成时调用的函数.在我的小实验中,永远不会调用此函数.这是我的代码:

    window.onload = function() {
        var url = "http://www.google.com";
        var request = new XMLHttpRequest();


        request.onload = function() {
            var state = this.readyState;
            var responseCode = request.status;
            console.log("request.onload called. readyState: " + state + "; status: " + responseCode);

            if (state == this.DONE && responseCode == 200) {
                var responseData = this.responseText;
                alert("Success: " + responseData.length  + " chars received.");
            }
        };

        request.error = function(e) {
            console.log("request.error called. Error: " + e);
        };

        request.onreadystatechange = function(){
            console.log("request.onreadystatechange …
Run Code Online (Sandbox Code Playgroud)

javascript ajax firefox xmlhttprequest

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

AngularJS $ http从失败的CORS请求返回状态码0

好的,我已经为此寻找了.基本上我们使用$ http请求,即跨域请求.我们的服务器允许域,当请求返回200时,一切正常.但是,只要我们的服务器返回错误,500,401,无论如何,Angular认为这是一个CORS问题.

我用Fiddler调试了响应,以验证我的服务器是否返回了500个Angular阻塞.

这是请求:

       var params = {
            url: "fakehost/example",
            method: 'GET',
            headers: {
                "Authorization": "Basic encodedAuthExample"
            }
        };

       $http(params).then(
            function (response) { // success 

            },
            function (error) { // error 
                 // error.status is always 0, never includes data error msg
            });
Run Code Online (Sandbox Code Playgroud)

然后在控制台中,我会看到:

XMLHttpRequest无法加载fakehost/example.请求的资源上不存在"Access-Control-Allow-Origin"标头.因此不允许原点'mylocalhost:5750'访问.

然而,在提琴手中,真正的反应是:

HTTP/1.1 500 Internal Server Error
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Tue, 26 Aug 2014 12:18:17 GMT
Content-Length: 5683

{"errorId":null,"errorMessage":"Index was outside the bounds of …
Run Code Online (Sandbox Code Playgroud)

javascript xmlhttprequest cors angularjs

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

Firefox Web扩展 - 读取本地文件(上次下载的文件)

我正在创建一个Web扩展并从XUL移植.我曾经能够轻松阅读文件

  var dJsm = Components.utils.import("resource://gre/modules/Downloads.jsm").Downloads;
  var tJsm = Components.utils.import("resource://gre/modules/Task.jsm").Task;
  var fuJsm = Components.utils.import("resource://gre/modules/FileUtils.jsm").FileUtils;
  var nsiPromptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(Components.interfaces.nsIPromptService);

  ....

  NetUtil.asyncFetch(file, function(inputStream, status) {
           if (!Components.isSuccessCode(status)) {
            return;
           }
            var data =  NetUtil.readInputStreamToString(inputStream, inputStream.available());
            var data = window.btoa(data);
            var encoded_data_to_send_via_xmlhttp = encodeURIComponent(data);
            ...
  });
Run Code Online (Sandbox Code Playgroud)

以上内容将被弃用.

我可以使用downloads.download()来了解最后一次下载是什么,但我无法读取该文件,然后获取encode_data_to_send_via_xmlhttp的等效文件

此外,在Firefox 57以上,意味着我必须尝试通过按钮单击或其他东西伪造用户操作,或上传文件.

  Access to file:// URLs or reading files without any explicit user input 
Run Code Online (Sandbox Code Playgroud)

是不是有一个简单的方法来阅读上次下载的文件?

firefox xmlhttprequest filereader

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