自动填写 - 提交外部表格?

时间:2014-12-24 18:23:41

标签: javascript ajax forms extjs cross-domain

我正在使用脚本自动填充并提交外部表单。远程网站似乎使用Ext.Ajax.request来验证表单。由于跨域问题,我的第一次尝试无效:没有'Access-Control-Allow-Origin':(

远程表单的代码源:

<form action="http://domain.com/loginaction.ashx" method="post">
    <input type="text" name="username" value=""/>
    <input type="password" name="passwd" value=""/>
   <button id="submitbtn"  onclick="validate();">Log In</button>                      
</form>

validate()函数在js文件中定义。

Plz伙计们!发送跨域请求的最简单方法是什么?

1 个答案:

答案 0 :(得分:0)

我建议您使用JQuery's $.ajax()调用将数据发送到网址。

您的HTML: 我删除了HTML中的操作和方法,并将它们移动到JavaScript中。 另外,请注意我在元素中添加了ID(id=""),因此我们可以使用JQuery调用它们。

<form>
    <input id="name" type="text" name="username" value=""/>
    <input id="pass" type="password" name="passwd" value=""/>
    <button id="submitbtn">Log In</button>
</form>

您的JavaScript(Using JQuery):

// Call validateForm() when button is clicked

$("#submitbtn").on("click", validateForm);

function validateForm(){
    var inputName = $("#name").val(); // Get value of name
    var inputPass = $("#pass").val(); // Get value of pass

    // Make sure values aren't empty
    if(inputName != "" && inputPass != ""){ 

        // Assign values to parameters object
        var params = {
            "entry-1" : inputName,
            "entry-2" : inputPass
        };

        // Send the parameters to the selected URL
        var ajaxPost = $.ajax({
            url: "http://domain.com/loginaction.ashx",
            type: "POST",
            data: params
        });

        // What to do upon success
        ajaxPost.done(function(data, textStatus){
            console.log("Success!");
            console.log("data");
        });

        // What to do upon error
        ajaxPost.fail(function(jqXHR, textStatus){
            console.log("Failure!");
            console.log("jqXHR");
        });
    }
}