相关疑难解决方法(0)

jQuery跨域POST shenanigans

我正在尝试对API进行身份验证,该API仅允许您使用带有JSON的POST作为表单数据进行身份验证,格式为{"username":"myusername","password":"mypassword"}.

我已经尝试了两天来使用jQuery,但是我遇到了问题,因为它是跨域的.我怎么能做到这一点?

错误信息:

Request Method:OPTIONS
Status Code:405 METHOD NOT ALLOWED
Run Code Online (Sandbox Code Playgroud)

代码到现在为止:

var username = "myusername";
var password = "mypass"
var authurl = "https://myurl";

$.ajax
({
    type: "POST",
    url: authurl,
    dataType: 'json',
    contentType: "application/json; charset=utf-8",
    async: false,
    data: {'json':'{"username":"' + username + '", "password":"' + password + '"}'},
    success: function (result) {
        $('#json').html(result);
    }
})
Run Code Online (Sandbox Code Playgroud)

总结一下:

  • API仅接受授权的POST
  • API需要json作为表单数据,例如:{"username":"myusername","password":"mypassword"}
  • js从不同的域运行,导致跨域错误

非常感谢您的帮助 :)

javascript jquery post json cross-domain

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

在发出xml Ajax请求时获取错误412

我最近开始使用JQTouch制作基于Web的应用程序.在这个应用程序中,当按下一个按钮时,我正在制作一个ajax请求,从我运行Apache的Linux服务器获取一个xml文件.当我通过wifi运行我的应用程序时,一切都运行良好.当我超过3克并按下按钮时,它也会加载.但是当我再次按下按钮时,我收到错误412的警报:前提条件失败.我在互联网上搜索了这个错误,我发现我必须在我的服务器上禁用mod_security,但这并不能解决错误:(

这是我的ajax请求:

$.ajax(
{
    type: "POST",
    cache: false,
    url: "http://draughtsonline.no-ip.org/ArtObject/catalogus/catalogus.xml",
    dataType: "xml",
    success: function(xml) 
    {
        // do stuff with the xml file
    },
    error: function(xhr, ajaxOptions, thrownError)
    {
        alert(xhr.status);
        alert(thrownError);
    },
    async: false
});
Run Code Online (Sandbox Code Playgroud)

我真的不知道它有什么问题.有人可以帮帮我吗?

提前致谢!

xml ajax jquery

3
推荐指数
1
解决办法
6187
查看次数

标签 统计

jquery ×2

ajax ×1

cross-domain ×1

javascript ×1

json ×1

post ×1

xml ×1