标签: xmlhttprequest

如何从异步调用返回响应?

我有一个foo发出Ajax请求的函数.我怎样才能从中回复foo

我尝试从success回调中返回值,并将响应分配给函数内部的局部变量并返回该变量,但这些方法都没有实际返回响应.

function foo() {
    var result;

    $.ajax({
        url: '...',
        success: function(response) {
            result = response;
            // return response; // <- I tried that one as well
        }
    });

    return result;
}

var result = foo(); // It always ends up being `undefined`.
Run Code Online (Sandbox Code Playgroud)

javascript ajax jquery asynchronous xmlhttprequest

5208
推荐指数
38
解决办法
134万
查看次数

如何异步上传文件?

我想用jQuery异步上传一个文件.这是我的HTML:

<span>File</span>
<input type="file" id="file" name="file" size="10"/>
<input id="uploadbutton" type="button" value="Upload"/>
Run Code Online (Sandbox Code Playgroud)

在这里我的__CODE__代码:

$(document).ready(function () {
    $("#uploadbutton").click(function () {
        var filename = $("#file").val();

        $.ajax({
            type: "POST",
            url: "addFile.do",
            enctype: 'multipart/form-data',
            data: {
                file: filename
            },
            success: function () {
                alert("Data Uploaded: ");
            }
        });
    });
});
Run Code Online (Sandbox Code Playgroud)

我只获取文件名,而不是上传文件.我该怎么做才能解决这个问题?

现行解决方案

我正在使用jQuery Form Plugin上传文件.

javascript ajax jquery asynchronous xmlhttprequest

2841
推荐指数
28
解决办法
129万
查看次数

Access-Control-Allow-Origin多个源域?

有没有办法允许多个跨域使用Access-Control-Allow-Origin标头?

我知道了*,但它太开放了.我真的想只允许一些域名.

举个例子,像这样:

Access-Control-Allow-Origin: http://domain1.example, http://domain2.example
Run Code Online (Sandbox Code Playgroud)

我已经尝试过上面的代码,但它似乎不适用于Firefox.

是否可以指定多个域,或者我只坚持一个?

.htaccess http xmlhttprequest cross-domain cors

985
推荐指数
17
解决办法
74万
查看次数

XmlHttpRequest错误:Access-Control-Allow-Origin不允许使用Origin null

我正在开发一个页面,通过jQuery的AJAX支持从Flickr和Panoramio中提取图像.

Flickr端工作正常,但当我尝试$.get(url, callback)从Panoramio时,我在Chrome的控制台中看到一个错误:

XMLHttpRequest无法加载http://www.panoramio.com/wapi/data/get_photos?v=1&key=dummykey&tag=test&offset=0&length=20&callback=processImages&minx=-30&miny=0&maxx=0&maxy=150.Access-Control-Allow-Origin不允许使用null.

如果我直接从浏览器查询该URL,它可以正常工作.发生了什么,我可以解决这个问题吗?我是不是错误地编写了我的查询,或者这是因为Panoramio会妨碍我正在尝试做的事情?

Google没有在错误消息上显示任何有用的匹配项.

编辑

以下是一些显示问题的示例代码:

$().ready(function () {
  var url = 'http://www.panoramio.com/wapi/data/get_photos?v=1&key=dummykey&tag=test&offset=0&length=20&callback=processImages&minx=-30&miny=0&maxx=0&maxy=150';

  $.get(url, function (jsonp) {
    var processImages = function (data) {
      alert('ok');
    };

    eval(jsonp);
  });
});
Run Code Online (Sandbox Code Playgroud)

您可以在线运行该示例.

编辑2

感谢Darin对此的帮助. 上面的代码错了. 请改用:

$().ready(function () {
  var url = 'http://www.panoramio.com/wapi/data/get_photos?v=1&key=dummykey&tag=test&offset=0&length=20&minx=-30&miny=0&maxx=0&maxy=150&callback=?';

  $.get(url, function (data) {
    // can use 'data' in here...
  });
});
Run Code Online (Sandbox Code Playgroud)

javascript jquery jsonp xmlhttprequest cors

535
推荐指数
8
解决办法
74万
查看次数

使用XMLHttpRequest发送POST数据

我想在JavaScript中使用XMLHttpRequest发送一些数据.

假设我在HTML中有以下表单:

<form name="inputform" action="somewhere" method="post">
    <input type="hidden" value="person" name="user">
    <input type="hidden" value="password" name="pwd">
    <input type="hidden" value="place" name="organization">
    <input type="hidden" value="key" name="requiredkey">
</form>
Run Code Online (Sandbox Code Playgroud)

如何在JavaScript中使用XMLHttpRequest编写等效代码?

javascript ajax post xmlhttprequest

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

在流行的浏览器中允许多少并发AJAX(XmlHttpRequest)请求?

在Firefox 3中,每个域的答案是6:只要触发到同一个域的第7个XmlHttpRequest(在任何选项卡上),它就会排队,直到其他6个完成.

其他主流浏览器的数字是多少?

此外,有没有办法绕过这些限制而不让我的用户修改他们的浏览器设置?例如,jsonp请求的数量是否有限制(使用脚本标记注入而不是XmlHttpRequest对象)?

背景:我的用户可以从网页向服务器发出XmlHttpRequests,要求服务器在远程主机上运行ssh命令.如果远程主机关闭,ssh命令将花费几分钟时间失败,最终阻止我的用户执行任何进一步的命令.

browser ajax xmlhttprequest

350
推荐指数
7
解决办法
18万
查看次数

如何阅读本地文本文件?

我试图通过创建一个函数来编写一个简单的文本文件阅读器,该函数接收文件的路径并将每行文本转换为char数组,但它不起作用.

function readTextFile() {
  var rawFile = new XMLHttpRequest();
  rawFile.open("GET", "testing.txt", true);
  rawFile.onreadystatechange = function() {
    if (rawFile.readyState === 4) {
      var allText = rawFile.responseText;
      document.getElementById("textSection").innerHTML = allText;
    }
  }
  rawFile.send();
}
Run Code Online (Sandbox Code Playgroud)

这里出了什么问题?

先前版本稍微更改代码后,这似乎仍然无效,现在它给了我一个XMLHttpRequest异常101.

我已经在Firefox上测试了它并且它可以工作,但是在谷歌Chrome中它不会工作并且它一直给我一个例外101.我如何才能让它不仅可以用于Firefox,还可以用于其他浏览器(尤其是Chrome) )?

javascript file-io xmlhttprequest

335
推荐指数
12
解决办法
102万
查看次数

Access-Control-Allow-Origin不允许使用Origin

我正在Ajax.request使用Sencha Touch 2应用程序(包装在PhoneGap中)创建一个远程PHP服务器.

服务器的响应如下:

XMLHttpRequest无法加载http://nqatalog.negroesquisso.pt/login.php.原产地http://localhost:8888不被访问控制允许来源允许的.

我该如何解决这个问题?

javascript ajax xmlhttprequest cross-domain cors

331
推荐指数
15
解决办法
67万
查看次数

为什么我收到OPTIONS请求而不是GET请求?

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js" type="text/javascript"></script>
<script>
$.get("http://example.com/", function(data) {
     alert(data);
});
</script>
Run Code Online (Sandbox Code Playgroud)

它对该URL执行OPTIONS请求,然后从不使用任何内容调用回调.

当它不是跨域时,它工作正常.

不应该只是jQuery与一个<script>节点进行调用,然后在加载时进行回调吗?我明白我无法得到结果(因为它是跨域的),但那没关系; 我只是希望电话通过.这是一个错误,还是我做错了什么?

jquery xmlhttprequest http-get http-options-method

278
推荐指数
3
解决办法
32万
查看次数

从JSON.parse捕获异常的正确方法

我正在使用JSON.parse有时包含404响应的响应.在它返回404的情况下,有没有办法捕获异常然后执行其他一些代码?

data = JSON.parse(response, function (key, value) {
    var type;
    if (value && typeof value === 'object') {
        type = value.type;
        if (typeof type === 'string' && typeof window[type] === 'function') {
            return new(window[type])(value);
        }
    }
    return value;
});
Run Code Online (Sandbox Code Playgroud)

javascript xmlhttprequest

240
推荐指数
4
解决办法
20万
查看次数