标签: ajax

使用jQuery和Ajax的基本身份验证

我试图通过浏览器创建基本身份验证,但我无法真正实现.

如果此脚本不在此处,则浏览器身份验证将接管,但我想告诉浏览器用户即将进行身份验证.

地址应该是这样的:

http://username:password@server.in.local/
Run Code Online (Sandbox Code Playgroud)

我有一个表格:

<form name="cookieform" id="login" method="post">
      <input type="text" name="username" id="username" class="text"/>
      <input type="password" name="password" id="password" class="text"/>
      <input type="submit" name="sub" value="Submit" class="page"/>
</form>
Run Code Online (Sandbox Code Playgroud)

还有一个脚本:

var username = $("input#username").val();
var password = $("input#password").val();

function make_base_auth(user, password) {
  var tok = user + ':' + password;
  var hash = Base64.encode(tok);
  return "Basic " + hash;
}
$.ajax
  ({
    type: "GET",
    url: "index1.php",
    dataType: 'json',
    async: false,
    data: '{"username": "' + username + '", "password" : "' + password + '"}', …
Run Code Online (Sandbox Code Playgroud)

javascript authentication ajax jquery

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

返回JSON或部分html的ASP.NET MVC控制器操作

我正在尝试创建控制器操作,它将返回JSON或部分html,具体取决于参数.将结果异步返回到MVC页面的最佳方法是什么?

ajax asp.net-mvc json asp.net-ajax

393
推荐指数
8
解决办法
55万
查看次数

对预检请求的响应未通过访问控制检查

我使用ngResource在Amazon Web Services上调用REST API时收到此错误:

XMLHttpRequest无法加载 http://server.apiurl.com:8000/s/login?login=facebook.对预检请求的响应未通过访问控制检查:请求的资源上不存在"Access-Control-Allow-Origin"标头.原产地" :HTTP //本地主机,因此"是不允许访问. 错误405

服务:

socialMarkt.factory('loginService', ['$resource', function($resource){    
    var apiAddress = "http://server.apiurl.com:8000/s/login/";
    return $resource(apiAddress, { login:"facebook", access_token: "@access_token" ,facebook_id: "@facebook_id" }, {
                getUser: {method:'POST'}
            });
}]);
Run Code Online (Sandbox Code Playgroud)

控制器:

[...]
loginService.getUser(JSON.stringify(fbObj)),
                function(data){
                    console.log(data);
                },
                function(result) {
                    console.error('Error', result.status);
                }
[...]
Run Code Online (Sandbox Code Playgroud)

我正在使用Chrome,我不知道还有什么可以解决这个问题.我甚至将服务器配置为接受来自源的头文件localhost.

javascript ajax http cors http-status-code-405

392
推荐指数
12
解决办法
104万
查看次数

通过jQuery.Ajax下载文件

我在服务器端有一个Struts2动作用于文件下载.

<action name="download" class="com.xxx.DownAction">
    <result name="success" type="stream">
        <param name="contentType">text/plain</param>
        <param name="inputName">imageStream</param>
        <param name="contentDisposition">attachment;filename={fileName}</param>
        <param name="bufferSize">1024</param>
    </result>
</action>
Run Code Online (Sandbox Code Playgroud)

但是当我使用jQuery调用动作时:

$.post(
  "/download.action",{
    para1:value1,
    para2:value2
    ....
  },function(data){
      console.info(data);
   }
);
Run Code Online (Sandbox Code Playgroud)

在Firebug中我看到使用二进制流检索数据.我想知道如何打开用户可以在本地保存文件的文件下载窗口

javascript ajax jquery jsp download

391
推荐指数
14
解决办法
68万
查看次数

使用jQuery在AJAX请求中添加标头

我想从jQuery向AJAX POST请求添加自定义标头.

我试过这个:

$.ajax({
    type: 'POST',
    url: url,
    headers: {
        "My-First-Header":"first value",
        "My-Second-Header":"second value"
    }
    //OR
    //beforeSend: function(xhr) { 
    //  xhr.setRequestHeader("My-First-Header", "first value"); 
    //  xhr.setRequestHeader("My-Second-Header", "second value"); 
    //}
}).done(function(data) { 
    alert(data);
});
Run Code Online (Sandbox Code Playgroud)

当我发送此请求并使用FireBug观看时,我看到此标题:

选项xxxx/yyyy HTTP/1.1
主机:127.0.0.1:6666
User-Agent:Mozilla/5.0(Windows NT 6.1; WOW64; rv:11.0)Gecko/20100101 Firefox/11.0
接受:text/html,application/xhtml + xml, application/xml; q = 0.9,/ ; q = 0.8
Accept-Language:fr,fr-fr; q = 0.8,en-us; q = 0.5,en; q = 0.3
Accept-Encoding:gzip,deflate
Connection:keep -alive
Origin:null
Access-Control-Request-Method:POST
Access-Control-Request-Headers:my-first-header,my-second-header
Pragma:no-cache
Cache-Control:no-cache

为什么我的自定义标题会转到Access-Control-Request-Headers:

Access-Control-Request-Headers:my-first-header,my-second-header

我期待像这样的标头值:

My-First-Header:第一个值
My-Second-Header:第二个值

可能吗?

javascript ajax jquery post http-headers

377
推荐指数
4
解决办法
79万
查看次数

处理从ajax帖子下载的文件

我有一个javascript应用程序,它将ajax POST请求发送到某个URL.响应可能是JSON字符串,也可能是文件(作为附件).我可以在我的ajax调用中轻松检测Content-Type和Content-Disposition,但是一旦我检测到响应包含文件,我该如何让客户端下载它?我在这里读过很多类似的帖子,但没有一个提供我正在寻找的答案.

请,请不要发布答案,建议我不应该使用ajax或者我应该重定向浏览器,因为这都不是一个选项.使用纯HTML表单也不是一种选择.我需要的是向客户端显示下载对话框.可以这样做,怎么做?

编辑:

显然,这不可能做到,但有一个简单的解决方法,如接受的答案所示.对于今后遇到这个问题的人来说,我的解决方法如下:

__PRE__

所以基本上,只需生成一个HTML表单,其中包含与AJAX请求中使用的相同的参数并提交它.

javascript ajax jquery

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

使用Ajax以一种形式上传数据和文件?

我正在使用jQuery和Ajax为我的表单提交数据和文件,但我不确定如何以一种形式发送数据和文件?

我目前对这两种方法的做法几乎相同,但数据收集到数组的方式不同,数据使用.serialize();但文件使用= new FormData($(this)[0]);

是否可以将两种方法结合起来,以便能够通过Ajax以一种形式上传文件和数据?

数据jQuery,Ajax和html

$("form#data").submit(function(){

    var formData = $(this).serialize();

    $.ajax({
        url: window.location.pathname,
        type: 'POST',
        data: formData,
        async: false,
        success: function (data) {
            alert(data)
        },
        cache: false,
        contentType: false,
        processData: false
    });

    return false;
});

<form id="data" method="post">
    <input type="text" name="first" value="Bob" />
    <input type="text" name="middle" value="James" />
    <input type="text" name="last" value="Smith" />
    <button>Submit</button>
</form>
Run Code Online (Sandbox Code Playgroud)

文件jQuery,Ajax和html

$("form#files").submit(function(){

    var formData = new FormData($(this)[0]);

    $.ajax({
        url: window.location.pathname,
        type: 'POST',
        data: formData,
        async: false,
        success: function (data) {
            alert(data) …
Run Code Online (Sandbox Code Playgroud)

javascript forms ajax jquery

359
推荐指数
6
解决办法
50万
查看次数

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

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

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

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

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

browser ajax xmlhttprequest

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

CORS - 引入预检请求的动机是什么?

跨源资源共享是一种允许网页将XMLHttpRequests发送到另一个域(来自维基百科)的机制,这非常重要(来自我:).

在过去的几天里,我一直在调整CORS,我想我对一切运作方式都有很好的理解.

所以我的问题不是关于CORS /预检如何工作,而是关于将预检作为新请求类型的原因.我没有看到任何理由为什么服务器A需要向服务器B发送预检(PR)以确定是否接受真实请求(RR) - B当然可以接受/拒绝RR而不用任何先前的公关.

经过相当多的搜索,我在www.w3.org(7.1.5)上找到了条信息:

为了保护资源免受在此规范存在之前不能源自某些用户代理的跨源请求,进行预检请求以确保资源知道此规范.

我发现这是最难理解的句子.我的解释(应该更好地称之为'最佳猜测')是关于保护服务器B免受来自服务器C的不知道规范的请求.

有人可以解释一个场景/显示PR + RR解决的问题比单独的RR更好吗?

ajax html5 http cors preflight

342
推荐指数
6
解决办法
6万
查看次数

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万
查看次数