Hi Guys,
I'm relatively new to AJAX and Prototype, so please be gentle with me.
I've been working on getting what I expected was a simple AJAX request
into my site, and the code I've created looks right to me, however
only works in Internet Explorer. Initially I thought the problem
might be Prototype, but I quickly did the same thing in jQuery, and
that also fails in the same way.
All the code is being run on localhost, and it's basically a PHP site
running with Smarty, communicating with a Web Service responding with
JSON.
Firstly, the HTML:
<html>
<head>
<title>VA PHP Test Site</title>
<script type="text/javascript" src="scripts/prototype.js"></
script>
<script type="text/javascript" src="scripts/va-login.js"></
script>
</head>
<body>
<h1>VA PHP</h1>
<p>Please Log In:</p>
<form id="login-form">
User:
<input type="text" name="Person" />
<br />
Password:
<input type="text" name="Password" />
<input type="submit" value="Login" onclick="login_staff();" />
</form>
<div id="login-response"></div>
</body>
</html>
And the Javascript:
function login_response(response) {
var login = response.responseJSON;
alert("State: " + login.LoginState + "\nAccount: " + login.Account +
"\nUser: " + login.User + "\nPassword: " + login.User);
}
function login_staff()
{
var loginString;
var url='LoginWSO.wso/Login_Staff/JSON';
// this sets loginString to "Person=value1&Password=value2"
loginString = Form.serialize("login-form");
// creates and sends the request.
// pops an alert if there is an error, or fires login_response when
complete
var myAjax = new Ajax.Request(
url,
{method: 'POST', parameters: loginString, contentType:
'application/json',
onComplete: function(response){alert('response ' +
response.responseJSON); },
onFailure: function(){ alert('Something went
wrong...'); }
}
);
}
Just to sum it it, while using the Chrome debugger I found the
following:
1. login_staff is fired, and appears to collect the various settings
ok
2. onComplete occurs and the login_response function is sent - however
the response variable is null
3. As a result the alert appears, but is largely blank
In Internet Explorer, the alert pops up, and contains the correct
response.
In Firefox the behaviour is much the same as Chrome, however if I put
a break point on, and take my time stepping through the code, the
correct alert does actually appear. If it let it run normally
however, it behaves the same as Chrome.
My initial thoughts were that same origin policy, but given that it's
all on localhost, I'm not sure why this would be the case.
Any suggestions gratefully appreciated!
Thanks,
Matt
--
You received this message because you are subscribed to the Google Groups
"Prototype & script.aculo.us" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/prototype-scriptaculous?hl=en.