Elance AJAX Test Answers 2015

Which protocol is used to transfer data in an AJAX request?
Advanced Server Protocol, ASP
Asynchronous Binary Transfer Protocol, ABTP
Hypertext Transfer Protocol, HTTP
AJAX Object Protocol, AOP

What's wrong with the following code? function check_for_request_done() { if (xhr.readyState == 4) { clearInterval(timer); do_something_with_result(xhr); } } var xhr = new XMLHttpRequest(); xhr.open("GET", "/resource", true); xhr.send(); var timer = setInterval(check_for_request_done, 100);
The wrong readystate value is being checked for a complete request. The response should only be used when readyState == 5.
The timer interval (100ms) is way too fast, a longer polling interval should be chosen to detect for response.
This code is polling a timer rather using the onreadystatechange event to check the state of the async request.
The resource is being fetched synchronously so there's no need to wait for a response.

What is the difference between the XMLHttpRequest object's .status and .statusText attributes?
.status is read-only, while .statusText can be modified
.statusText is not a valid attribute of the XMLHttpRequest object
.statusText is the more widely supported of the two across browsers
.status returns a numeric-only code instead of the full HTTP response, which can be found in .statusText

Is it possible to add custom HTTP header to ajax request?
Yes, it is possible. Custom HTTP header can be added while initializing a request with open() method
Yes, it is possible. setRequestHeader() method of XMLHttpRequest object can be used to add a custom HTTP header
No, it is not possible
Yes, it is possible. Custom HTTP header can be added while initializing a request with init() method

The onreadystatechange change event is used to invoke behavior when
elements on a page change appearance.
the browser window is closed or resized.
the status of the asynchronous request changes.
users navigate away from a page with unsaved or uncommitted changes.
a user indicates they are ready to continue from a dialog prompt.

Which method on the XMLHttpRequest object is used to send custom HTTP headers with a request?

When using async=true in xmlhttp.open function
specify a function to execute when the response is ready in the onreadystatechange event
server crashed
response is not constructed
connection not established

What does the acronym "blob" stand for when referring to data types?
It is not an acronym
binary large object
bytes left over from bitstream
binned large ordinal byte

Aalways use POST requests in xmlhttp.open when
update a file or database on the server
does not require to send user inputs
data size is small
security is not an issue

What is the value of the "status" attribute of the completed XMLHttpRequest object if the Ajax request has pulled the response data from the browser cache? Consider only non-IE browsers.

For the "same origin policy" to always allow an Ajax request, what attributes must be the same between the requesting context and the server?
Domain name, protocol, and port
Second-level domain only
Full domain name
IP subnet

Which HTML5 feature can improve the experience of a user using the "back" and "forward" buttons when using AJAX techniques?
The history API with pushState, replaceState and history events.
The storage API with css3 full page state saving.
The version API that allows versioning page interactions.
New browser chrome events: onbackbuttonpressed and onforwardbuttonpressed.

What is the JavaScript syntax for generating an XML HTTP request object and assigning it to the "xhr" variable? Consider only modern browsers, plus IE7 and above.
var xhr = navigator.XMLHTTPRequest();
var xhr = new XMLHTTPRequest();
var xhr = new XMLHttpRequest();
var xhr = window.XmlHTTPRequest();

In standard JavaScript, what makes asynchronous execution of Ajax calls possible?
Multi-threaded operations
Deferrals and promises
Events and callbacks

Which browser features and/or technologies must be enabled, at a minimum, for AJAX techniques to function properly?
Private browsing must be enabled.
Cookies must be enabled.
JavaScript must be enabled.
A Java plugin must be installed and enabled.
A Flash plugin must be installed

What are the advantages of using JavaScript libraries (like jQuery) to implement Ajax?
Better cross-browser compatibility and faster speed of development
There is no advantage
Fewer HTTP requests and smaller loaded resources

The primary benefit of using AJAX techniques in a web application is:
It makes web applications "advanced".
It allows web applications to send asynchronous data requests to a server without a user initiated page load.
It makes pages more easily bookmarked, shared and navigated by users using standard browser controls.
It makes it easier to create accessible (usable by people of all abilities and disabilities) web pages
It makes web applications more easily crawlable by search engines like Google, Yahoo and Bing.

If an Ajax request loads JSON-formatted responseText into the variable returnedData, what code will turn the data into a readable JSON object in modern browsers, including IE8 and above?

What is the preferred method for maintaining back/forward button and crawler functionality in Ajax-driven web applications?
< or > in the URL
There is no effective method

True or false? A GET request submitted through Ajax can never cause the server to delete data.

True or false? Ajax can be used to open a connection from the server to the browser without the browser making an explicit request.

How do you manually abort an Ajax request after a certain amount of time?
There is no way to manually timeout Ajax requests
Using setTimeout(), clearTimeout() and .abort()
Supply a "timeout" argument in the request's .open() method

What does JSON do?
A binary protocol, based on JavaScript, for the transmission of application state
A browser-only data serialization and interchange format based on JavaScript.
A JavaScript library for transmitting data between clients and servers.
A lightweight, HTML5, browser-based database for storing client-side data.
A data serialization and interchange format using a subset of JavaScript syntax

AJAX applications are browser- and platform-dependent!

Ajax can be used to open a connection from the server to the browser without the browser making an explicit request.

Most JavaScript libraries that provide AJAX support include this header in AJAX requests by default.
X-Forwarded-For: XMLHttpRequest
X-Requested-With: XMLHttpRequest
Proxy-Authorization: Asynchronous
X-Request-Type: AJAX
X-Request-Option: Asynchronous

What is the purpose of Ajax long-polling?
To keep a server connection open for two-way communication
To check server-side functionality before executing client-side code
To allow offline functionality in Ajax-driven web applications
To allow cross-domain data transfer

Can an XMLHttpRequest object be used to receive binary data?
Yes, but only when transferring image files.
Yes, but only in newer browsers by using the responseType property specified in the Level 2 XHR specification.
No, XHR requests only allow text transfer between server and client.
Yes, in newer browsers using the responseType property and in older browsers by overriding the mime type of the response.

What is the value of the .status attribute of the completed XMLHttpRequest object if the Ajax request needed to follow a server-side redirect before successfully finding the intended resource?

How response will be parsed if responseType is set to "document" and the request has been made asynchronously?
as a text/xml stream
as a text/html stream
as an empty string
as a binary stream
none of the above

If the server is expecting JSON-formatted information in the request, what code will turn the JavaScript object dataToSend into data you can send to the server (consider modern browsers only, including IE8 and above)?

Can you perform file uploads using AJAX requests alone?
No, not without additional plugins and hacks.
Yes, but only when using newer browsers and HTML5 features.

Can you make an XMLHttpRequest asynchronous call to a page on a different top level domain from the current page's top level domain?
In newer browsers cross-domain requests can be configured but only when servers use special headers to explicitly allow some cross domain requests.
Yes, when the two top level domains share the same SSL certificate.
Yes, always.
No, browser sandboxing rules prevent any asynchronous requests between different document domains.
Yes, when the P3P header is returned from the server and properly configured.

What is XSS?
An extensible stylesheet format designed to be used with Ajax
A development framework that assists in writing Ajax-driven applications
A JavaScript rendering engine
Malicious client-side code injection

Which of the HTTP actions is an Ajax XML HTTP request capable of sending to a server?

What is the syntax for the event listener that monitors whether the XMLHttpRequest object's readyState attribute has changed?

Which readystate value indicates the response has been fully received from the asynchronous request?
true (response received)
4 (readystate complete)
200 (response OK)
"OK" (response good)
1 (readystate received)

What is the CORS-enabled Ajax request object constructor in IE8-9?
new XMLHttpRequest();
new CorsRequest();
new CORSRequest();
new XDomainRequest();

How can you load JavaScript from a different file into your web application?
<script> tags
All of these

When your Ajax request is complete, what attribute of the XML HTTP request object contains the returned data?

What is the name of the object which provides CORS support in Internet Explorer 8 and Internet Explorer 9?
None of the above

How does Google recommend you make an Ajax-dependent page accessible to their web crawler?
Add a <meta> tag with the value "dynamic='true'"
Use a robots.txt file to transmit the relevant data to the crawler
Use Ajax to progressively enhance server-side processing, rather than to replace it

How would you configure a *synchronous* GET request to "/resource" after instantiating a new XMLHttpRequest object: var xhr = new XMLHttpRequest();?
xhr.open("GET", "/resource", true);
xhr.open("GET", "/resource");
xhr.open("GET", "/resource", false);
xhr.sync("GET", "/resource");

What HTML attribute would you use to indicate to a screenreader that an element of the page may update using Ajax while out of the user's focus?

According to the W3C specification, which HTTP methods should throw a security exception when used with XMLHttpRequest?

What does CORS stand for?
Central organized repository service
Cross-origin resource sharing
Confirmed origin response status
Cross-origin request system

Which of these is NOT an advantage of using Ajax over server-side processing?
Lazy-loading of resources
Client-side responsiveness
Cross-browser compatibility
Reduced server processing load

What is the proper way to execute a callback function while making a "synchronous" request?
Callback functions are used with "asynchronous" requests only
req.readyState = callback_function_name;
req.onreadystatechange = callback_function_name;

What value of the XMLHttpRequest object's readystate attribute indicates that the response data (i.e. not the headers) is currently being sent back from the server?
The readystate attribute does not provide this information

Your cross-origin Ajax request is causing your console to throw the error "Resource interpreted as Script but transferred with MIME type application/json. Uncaught SyntaxError: Unexpected token :" What might be happening?
The wrong MIME type has been selected in your Ajax configuration
You used the incorrect callback parameter in your request URL
The server is rejecting your cross-origin request because you did not supply the correct headers
The server is returning an unencapsulated JSON object which is being executed as JSONP

After a request completes, which property of the XMLHttpRequest object can be used to retrieve a DOM representation of a remote XML document?

What is the technical limitation to implementing user login entirely on the client side using Ajax?
Client-side data storage is limited to 5MB
There is no technical limitation; it is a common practice
Client-side data is not persisted across browser sessions
Client-side code is inherently insecure

What HTTP response header is expected in reply to a CORS request?

You've created an XMLHttpRequest object, xhr, and properly called open as well as send on the object. When you check xhr.status and it's 0 and your responseText is null. What's the most likely explanation of what happened?
The target resource was served from the browser's cache.
The request has not yet connected to the server.
The browser has initiated too many simultaneous XHR requests and this request has been queued.
The server encountered an unknown error.
Your request was canceled either due to a failed connection or a user action.

You're issuing a request to "/resource" using XMLHttpRequest (xhr) where the server returns a 301 or 302 status code, what happens?
The XHR object will automatically and transparently follow the redirects to the new location for the resource, unless it's on a different domain.
Depends on how the XHR object is configured. If xhr.redirects=false, you will need to manually issue new requests otherwise it will automatically follow 301 and 302 redirects, unless the location is on a different domain.
The readystate will advance to 4 but the responseText and responseXML will be null. You will need to issue a new request to the destination of xhr.getResponseHeader("Location").
The readystate will halt at 3 and you must detect the 301 or 302 header and call xhr.continue() for each 301/302 response.

Ajax is frequently expanded as "asynchronous JavaScript and XML," which is misleading. Which of these words is not central to Ajax's functionality?
asynchronous and XML

What happens if an Ajax call completes (and calls its callback function) when other JavaScript is currently running?
The Ajax callback function will run immediately in another thread, allowing the currently-running code to complete as normal
The currently-running code will terminate, and the Ajax callback function will be called immediately
The Ajax callback function will be queued until the currently-running code completes

When receiving an image from the server, the responseType attribute of your XMLHttpRequest object must be set to:
"arraybuffer" or "blob"

What XMLHttpRequest method is used to override MIME type returned by the server?

What is the value of the response property of XMLHttpRequest object if readyState property equal to 3?
empty string
partial response body

How do you detect errors in Ajax REQUESTS?
the onerror event
check if .readyState !== 4
check if .status !== 200

How does JSONP work?
It encodes server responses in a special data type that is ignored by the browser's JavaScript parser
It makes server response text act like an injected <script> element
It sends an HTTP "Access-Control-Allow-Origin" header to the server that asks for permission to make a cross-origin request

What arguments MUST be supplied to an XMLHttpRequest object's .open() method, and in what order?
HTTP method as string, URL as string
HTTP method as string, URL as string, async flag as boolean, username as string, password as string
URL as string, HTTP method as string, CORS flag as boolean
URL as string, HTTP method as string, URL parameters as string

Which property of the popstate event contains a copy of the history entry's state object?
none of the above

In non-IE browsers, what attribute should you check your XMLHttpRequest object for in order to see if it supports CORS?