Fact-checked by Grok 2 weeks ago

JSONP

JSONP, or JSON with Padding, is a JavaScript technique that enables cross-origin requests by wrapping data in a callback and loading it via a dynamically inserted <script> element, thereby circumventing the browser's restrictions on cross-domain data access. Proposed in by developer Bob Ippolito as a for early browsers' strict enforcement of the , JSONP allows client-side scripts to fetch and execute data from remote servers without requiring server-side changes for cross-domain support. The method works by specifying a callback name in the request (e.g., via a query like ?callback=myFunction), to which the server responds with code that invokes the and passes the data as an argument, such as myFunction({"key": "value"}). This leverages the browser's allowance for cross-origin loading while executing the response directly in the , enabling asynchronous in environments like applications before the widespread adoption of alternatives. Historically integrated into frameworks such as and , JSONP became popular for public consumption but is limited to GET requests and read-only operations, as it treats responses as executable code rather than structured data. Despite its utility in legacy systems, JSONP is inherently insecure because it grants remote servers the ability to execute arbitrary in the client's context without verification, potentially leading to (XSS) vulnerabilities if callback parameters are not properly sanitized. It also lacks support for , error handling beyond HTTP status codes, and non-GET methods, making it unsuitable for modern secure applications. As a result, JSONP has been deprecated in favor of (CORS), a standardized HTTP-header-based mechanism that provides safer, more flexible cross-origin access while maintaining the same-origin policy's protections. Although still used by some sites—as of a 2021 using rankings (discontinued in 2022), at least 10% of the top 10,000 websites utilized JSONP—its adoption has significantly declined with browser support for CORS since around 2010.

Fundamentals

Definition and Purpose

JSONP, or JSON with Padding, is a JavaScript technique that enables the retrieval of from a on a different than the originating page by dynamically loading a element, thereby circumventing browser-enforced cross-domain restrictions. This method involves wrapping in a callback function on the server side, allowing the to be executed as JavaScript code upon loading, which effectively bypasses the limitations of traditional requests that adhere to the . The primary purpose of JSONP is to allow client-side in web browsers to fetch and process JSON-formatted data from external APIs or services without requiring server-side changes or complex proxy setups, making it particularly useful in scenarios where direct calls are blocked. It served as a for developers building dynamic pages before the widespread adoption of modern alternatives like CORS, enabling AJAX-like functionality across domains in a lightweight manner. Common use cases for JSONP include embedding third-party widgets, such as feeds or maps, into websites; loading dynamic content from content delivery networks (CDNs); and integrating external into single-page applications for updates. For instance, a script might dynamically create a <script> with a source URL pointing to a remote endpoint, prompting the server to return data padded with a specified callback function name, which then processes the response upon execution. This approach was especially prevalent in applications requiring mashup capabilities.

Relation to Same-Origin Policy

The is a critical security mechanism in web browsers that restricts how a document or script loaded from one can interact with resources from another , with an defined by the , (domain), and port number of the resource. This policy ensures isolation between web content from different sources to prevent unauthorized access, such as a malicious script on one site reading sensitive data from another. The policy significantly impacts cross-domain requests, particularly those using (XHR) or the Fetch API, which are foundational to traditional implementations for dynamic web content loading. Attempts to fetch data from a different origin via these methods are blocked, resulting in errors like "cross-origin request blocked" to protect against potential data leakage or injection attacks. JSONP serves as a for these restrictions by exploiting a deliberate exception in the : browsers permit the <script> element to load and execute from any origin without enforcement of origin checks. This allows client-side code to dynamically inject a tag pointing to a remote , which returns wrapped in a callable function, enabling cross-origin retrieval without server-side modifications beyond supporting the callback format. The technique emerged during an era when secure cross-origin mechanisms like (CORS) were not yet widely implemented in browsers, despite CORS first appearing as a W3C Working Draft in May 2006 (renamed in March 2009). This positioned JSONP as a practical interim solution for early web applications requiring external .

Mechanism

Script Element Injection

Script element injection forms the foundational mechanism in JSONP for enabling cross-domain data retrieval by leveraging the browser's permissive handling of external script resources. Client-side JavaScript initiates this process by dynamically creating an through the document.createElement('script') method. The element's src attribute is then configured to the target remote URL, with a added to specify the callback name—typically formatted as ?callback=callbackName if no existing exists, or &callback=callbackName otherwise. The script element is subsequently appended to the (DOM), often to the <head> or <body> via appendChild, prompting the to fetch and process the resource. Browsers handle dynamically inserted <script> elements by issuing an asynchronous HTTP GET request to the src , without enforcing the that blocks similar cross-domain fetches via or Fetch API. This exemption arises because external scripts have historically been allowed to load from any origin to support features like third-party widgets and . Upon successful retrieval, the browser executes the returned content as in the global execution context immediately, parsing it as executable code rather than data, which facilitates direct invocation of the specified callback. The following code snippet illustrates a basic implementation of script element injection for JSONP:
javascript
function loadJSONP(baseUrl, callbackName) {
  const script = document.createElement('script');
  const separator = baseUrl.indexOf('?') !== -1 ? '&' : '?';
  script.src = baseUrl + separator + 'callback=' + callbackName;
  document.head.appendChild(script);
}
Here, baseUrl represents the JSONP , and callbackName is the string identifier of a pre-defined function that the will wrap around the response. This approach ensures the request includes the necessary for server-side formatting. To mitigate potential memory leaks from retained DOM references or event listeners, especially in scenarios involving repeated JSONP calls, the script element should be removed from the DOM after loading completes. This cleanup is typically implemented by assigning an onload handler prior to insertion:
javascript
script.onload = function() {
  document.head.removeChild(this);
};
An analogous onerror handler can address failed requests by removing the element and optionally logging the issue. Detached DOM nodes, if left uncleared, can prevent garbage collection of associated objects, leading to gradual memory accumulation in long-running applications.

Callback Function and Response Format

In JSONP, the client specifies a callback function name as a query parameter in the request , typically named callback or jsonp, to instruct the on how to format the response. For instance, a request might append ?callback=myCallback to the , allowing the to identify the that will process the returned data. This enables the technique to function across domains by leveraging the browser's permissive loading of script resources. The server responds by wrapping the JSON payload within a JavaScript function call using the provided callback name, creating executable code rather than . This "padding" transforms the response into valid JavaScript, such as myCallback({"data": "value", "status": "success"}), where the object serves as the argument to the . The response must be properly formatted to avoid syntax errors, often enclosed in parentheses if needed for array literals, ensuring it executes seamlessly when loaded via a element. This structure was first proposed as a standard methodology for cross-domain data fetching using tags. On the , a with the specified name must be predefined in the global scope before the script request is made, ready to receive and handle the data argument upon execution. For example, the callback might parse the received object to update the , log results, or trigger further actions, effectively transferring the data despite same-origin restrictions. The processes the JSON as a native object, bypassing the need for additional parsing. Variations in implementation include generating unique callback names, such as myApp_callbacks_12345, to prevent conflicts when multiple JSONP requests occur simultaneously on the same page. This uniqueness can be achieved by appending timestamps or random identifiers to the base name. For error handling, JSONP lacks built-in mechanisms like XMLHttpRequest's onerror events, so developers often implement fallbacks using timeouts: if the callback does not execute within a set period, an routine is triggered to manage failures like network issues or invalid responses.

Security Concerns

Execution of Untrusted Code

JSONP's core vulnerability stems from its reliance on injecting responses as executable JavaScript scripts via dynamically created <script> elements, allowing any code returned by the remote server to run with full privileges in the context of the including webpage. This mechanism, intended to bypass the same-origin policy for data retrieval, treats the entire response as code rather than structured data, granting the third-party server unrestricted access to the client's DOM, cookies, and other sensitive resources. The trust model in JSONP fundamentally assumes that the remote server is benign and will only return expected callback-wrapped data, but this breaks down if the server is compromised or malicious, enabling the injection of harmful scripts such as keyloggers that capture user inputs or redirects that lead to sites. For instance, a malicious server could respond with code that exfiltrates session tokens or modifies page content to display fraudulent elements, exploiting the script's elevated execution environment without any origin-based . Real-world incidents illustrate these risks, particularly in ad networks and where compromised endpoints have served via JSONP. In a 2024 malvertising campaign, attackers abused JSONP integrations with to inject malicious scripts into legitimate sites, redirecting users to credential-stealing pages without altering the sites' core infrastructure. Similar exploits targeted ad-serving , where hijacked JSONP responses delivered info-stealer to millions of visitors, highlighting the dangers of legacy third-party dependencies. Mitigating these risks is challenging, as basic approaches like validating the response data before execution are insufficient—executable code cannot be reliably sanitized without altering JSONP's fundamental behavior, often requiring advanced techniques such as sandboxed iframes with postMessage communication to isolate untrusted scripts. While server-side restrictions on callback parameters offer partial protection, they do not address the inherent execution of arbitrary code from unverified sources.

Callback Name Manipulation

One prominent security vulnerability in JSONP implementations arises when the server fails to properly validate the user-supplied callback parameter, allowing attackers to manipulate it via URL tampering to inject and execute arbitrary JavaScript code. By crafting a malicious callback value such as foo);alert('XSS');//, an attacker can prematurely close the intended function wrapper and append executable statements, resulting in cross-site scripting (XSS) when the response is loaded as a script element. This exploits the dynamic nature of JSONP responses, where the callback name is directly reflected into the JavaScript output without sanitization, enabling code execution in the victim's browser context. A related attack vector is the reflected file download (RFD), where callback forces the to treat the JSONP response as a downloadable with a malicious extension, potentially delivering or exploits. In this scenario, an attacker appends characters like ||[calc](/page/Calc)|| or semicolons to the callback parameter, combined with a Content-Disposition: attachment header if controllable, prompting the to the response as an (e.g., .bat) or other harmful format from a trusted . For instance, a like ?callback=setup.bat;q=rfd can trick Windows into interpreting the response as a runnable script, bypassing warnings due to the trusted . JSONP endpoints are particularly susceptible because they often reflect the callback directly and may use ambiguous content types like text/[javascript](/page/JavaScript), facilitating the misinterpretation as a . To mitigate these risks, servers must implement strict server-side validation of the callback parameter, typically using regular expressions to permit only alphanumeric characters, underscores, and dots (e.g., /^[a-zA-Z_$][a-zA-Z0-9_$]*$/). Whitelisting predefined callback names or generating static ones eliminates user control entirely, preventing injection attempts. Additionally, enforcing precise content types (e.g., application/[json](/page/JSON) with XSSI prefixes like while(1);) and avoiding path parameters in URLs can further reduce exposure to RFD and related manipulations. These defenses address the parameter-specific exploits while complementing broader protections against untrusted code execution in .

Cross-Site Request Forgery Vulnerabilities

JSONP endpoints are particularly susceptible to (CSRF) attacks due to their reliance on dynamically loaded <script> elements, which can be embedded on any malicious webpage without restrictions imposed by the . An attacker can trick an authenticated user into visiting a malicious site that injects a <script> tag pointing to the victim's JSONP , such as <script src="https://api.victim.com/data?callback=handleData"></script>. This triggers an unauthorized GET request to the , carrying the user's session credentials (e.g., ) and potentially executing the returned script in the attacker's context. The core vulnerability stems from JSONP's lack of built-in mechanisms for origin validation or anti-forgery ; script tags do not support custom HTTP headers like those used in for CSRF protection, and the Referer header can be suppressed or spoofed by . Consequently, any can initiate the request on behalf of the , bypassing typical CSRF defenses that rely on validation or method-specific restrictions. The impact includes unauthorized or state modifications if the JSONP endpoint handles sensitive operations, such as retrieving private user data or altering account settings via GET parameters. For instance, in a analysis of encrypted storage services, the platform's JSONP interface allowed attackers to forge requests for shared folder contents using access keys, exposing encrypted data structures without user consent. Such attacks can lead to or unintended interactions, especially when endpoints fail to distinguish read-only from state-changing requests. Partial mitigations involve incorporating tokens into the (e.g., ?callback=handleData&token=uniqueValue) and validating them server-side alongside session credentials, though this requires careful to avoid exposing tokens in URLs. Server-side checks on the Referer or headers provide limited additional , but their unreliability makes them insufficient alone; transitioning to CORS with explicit origin whitelisting and preflight checks is recommended for safer cross-origin access.

Implementation-Specific Issues

Implementations of JSONP can encounter issues due to variations in how whitespace within dynamically loaded content. For instance, extra spaces, line breaks, or trailing characters appended by servers to the JSONP response—such as messages or debugging output—may render the entire payload invalid , triggering syntax errors during execution in the browser's engine. These discrepancies arise because JSONP relies on direct evaluation rather than structured , making it sensitive to any non- artifacts that differ across implementations. A notable vulnerability tied to JSONP implementation is the Rosetta Flash attack, disclosed in 2014 (CVE-2014-4671), which exploited Flash-based cross-domain proxies in older browsers. This technique encoded arbitrary SWF files into alphanumeric strings using zlib compression, Huffman encoding, and Adler-32 checksum brute-forcing, allowing attackers to inject them as JSONP callbacks. Once loaded via a vulnerable JSONP endpoint, the SWF could bypass same-origin restrictions to perform authenticated cross-domain requests, such as exfiltrating cookies from sites like Google and YouTube, without requiring a crossdomain.xml policy file. Adobe addressed this in Flash Player updates (APSB14-17), adding stricter SWF validation to prevent such alphanumeric payloads from executing. Browser-specific inconsistencies further complicate JSONP reliability, particularly in legacy versions of compared to modern browsers. In 6 and 7, JSONP requests using libraries like could cause browser lockups, with CPU usage spiking to 100% and callbacks failing to execute due to aggressive caching or timing issues in script loading. Similarly, IE11 exhibited failures with certain JSONP endpoints, such as API, where requests succeeded in other browsers but triggered errors or incomplete execution, often linked to stricter content security or proxy handling. These differences in callback invocation order and error propagation—where IE might defer or silently drop scripts—highlight the need for vendor-specific workarounds in polyfills or timeouts. More recently, in , a stack-based vulnerability (CVE-2025-36097) was disclosed in JSONP libraries versions 1.0, 1.1, and 2.0, enabling denial-of-service attacks via malformed inputs in affected application servers such as . Legacy development tools introduce additional pitfalls, such as conflicts with global callback functions and issues during code minification. JSONP requires predefined global functions for callbacks, but multiple libraries or scripts sharing the same can overwrite these, leading to failed data handling or race conditions in execution. Minification tools like those in or UglifyJS may obfuscate or rename these globals unless explicitly preserved (e.g., via mangle options), breaking the expected callback invocation from the server response. Furthermore, aggressive minification of client-side code can inadvertently shorten or remove padding around JSONP wrappers, exacerbating syntax fragility in environments with variable response formatting.

History and Evolution

Origins and Development

JSONP emerged as a response to the limitations of early web technologies for cross-domain data retrieval. The technique was formally proposed on December 5, 2005, by software developer Bob Ippolito, who coined the term "JSON with Padding" (JSONP) to describe a standardized method for fetching data across domains using dynamically inserted script tags. This built upon informal script-tag injection hacks that had been employed since the late 1990s to include external resources, such as advertisements or counters, from different origins without adhering to the browser's . The primary motivation for JSONP's development stemmed from the restrictive model, which prevented from accessing resources outside the originating domain, thereby hindering the creation of dynamic, interactive web applications. In the mid-2000s, during the rise of , developers sought ways to enable mashups and widgets that combined data from multiple services, such as sites or mapping APIs, without relying on inefficient local proxies or proprietary solutions like , which required additional configuration files and lacked broad . JSONP addressed these needs by leveraging the inherent ability of script elements to load executable code from any domain, provided the server wrapped the JSON response in a client-specified callback function. Key milestones in JSONP's early evolution included its rapid adoption in major JavaScript frameworks and API documentation. Yahoo began supporting JSON-formatted responses for its web services as early as December 2005, facilitating JSONP usage in client-side applications. Similarly, Google introduced an unofficial JSON API in November 2006, which could be adapted for JSONP requests to power JavaScript-based integrations. By September 2007, jQuery version 1.2 integrated native JSONP support through its getJSON method with a jsonp option, simplifying implementation for developers building cross-domain features. Early implementations were straightforward, often involving server-side logic to detect a callback parameter and wrap the JSON output accordingly. For instance, Ippolito's proposal included a example using the del.icio.us , where a unique callback identifier was generated to handle asynchronous responses:
javascript
var delicious_callbacks = {};
function getDelicious(callback, url) {
    var uid = (new Date()).getTime();
    delicious_callbacks[uid] = function () {
        delete delicious_callbacks[uid];
        callback();
    };
    url += "?jsonp=" + encodeURIComponent("delicious_callbacks[" + uid + "]");
    // Insert script tag with modified URL
}
On the server, simple scripts in languages like could parse the jsonp query and prepend the callback function name to the JSON string, ensuring safe execution upon loading. These basic patterns laid the groundwork for broader use in applications.

Adoption, Limitations, and Decline

JSONP achieved peak adoption between 2008 and 2015, becoming a ubiquitous for cross-origin data fetching in during an era when browser same-origin policies strictly limited requests. Major APIs, including Twitter's v1.0 and v1.1 endpoints and Flickr's public photo feeds, explicitly supported JSONP by allowing a callback to wrap responses in executable , enabling client-side integration without server-side changes. This technique was integrated into popular libraries such as , which provided dedicated modules like dojo/request/script for handling JSONP requests, and jQuery, where $.getJSON with a callback query automatically converted requests to JSONP format. Despite its popularity, JSONP had significant limitations that hindered its reliability and scalability. It supported only GET requests via tags, precluding methods like and preventing the use of HTTP status codes for error reporting, which forced developers to infer failures from response content alone. Additionally, reliance on global callback functions led to namespace pollution, where concurrent requests or library conflicts could overwrite functions, complicating large-scale applications and increasing maintenance overhead; these issues, combined with emerging flaws like callback injection vulnerabilities, became more apparent after 2010. JSONP's decline accelerated with the standardization of (CORS) in 2009 and its initial browser implementations, notably in in March 2011, followed by broader support in 3.5 (2009), 3 (2009), and 4 (2009). The , introduced in 2015, further promoted CORS by simplifying cross-origin HTTP requests with built-in credential and header support. By 2020, major frameworks including (via HttpClient) and (via fetch) had shifted away from JSONP, prioritizing CORS for its security and flexibility; announced the deprecation of automatic JSONP promotion in version 4.0, with the beta released in 2024 and the stable release pending as of 2025. As of 2025, JSONP persists only in legacy systems and select APIs for with older browsers, but it is strongly discouraged for new development due to its inherent vulnerabilities and outdated design. Migration guides recommend adopting CORS configurations or server-side proxying to handle cross-origin needs securely, with services like fully deprecating JSONP support to enforce modern standards.

References

  1. [1]
    Using JSONP - WCF - Microsoft Learn
    Sep 15, 2021 · JSONP is a mechanism that enables cross-site scripting support in Web browsers. JSONP is designed around the ability of Web browsers to load scripts from a ...
  2. [2]
    jsonp - Azure API Management policy reference - Microsoft Learn
    Jun 1, 2025 · JSONP is a method used in JavaScript programs to request data from a server in a different domain. JSONP bypasses the limitation enforced by ...
  3. [3]
    [PDF] JSONPS: Secure an inherently insecure practice with this one weird ...
    Abstract—JSONP, or JSON with Padding, is a cross-origin data exchange mechanism that was proposed in 2005 as a reaction to the extremely strict security ...
  4. [4]
    CORS & JSONP | Socrata - Data & Insights
    Also called “JSON with Padding”, it is a technique for fooling a web browser into performing cross-origin requests using a special <script> tag that uses the ...
  5. [5]
    CVE-2018-11040: JSONP enabled by default in ... - Spring
    Jun 14, 2018 · JSONP support in the Spring Framework is deprecated as of 5.0. 7 and 4.3. 18 and will be removed in 5.1.
  6. [6]
    Remote JSON - JSONP - Bob Ippolito
    Dec 5, 2005 · I'm proposing a new technology agnostic standard methodology for the script tag method for cross-domain data fetching: JSON with Padding, or simply JSONP.
  7. [7]
    JSONP - W3Schools
    JSONP is a method for sending JSON data without worrying about cross-domain issues. JSONP does not use the XMLHttpRequest object. JSONP uses the <script> tag ...
  8. [8]
    JSONP - WCF - Microsoft Learn
    The JSONP sample demonstrates how to support JSON with Padding (JSONP) in WCF REST services. JSONP is a convention used to invoke cross-domain scripts.
  9. [9]
    Same-origin policy - Security - MDN Web Docs - Mozilla
    Sep 26, 2025 · The same-origin policy is a critical security mechanism that restricts how a document or script loaded by one origin can interact with a resource from another ...
  10. [10]
  11. [11]
    Cross-Origin Resource Sharing - W3C
    Apr 3, 2012 · This document defines a mechanism to enable client-side cross-origin requests. Specifications that enable an API to make cross-origin requests to resources can ...
  12. [12]
    4 Types of Memory Leaks in JavaScript and How to Get Rid Of Them
    Jan 26, 2016 · In this article we will explore common types of memory leaks in client-side JavaScript code. We will also learn how to use the Chrome Development Tools to find ...Missing: JSONP cleanup
  13. [13]
    Memory management - JavaScript - MDN Web Docs
    Sep 18, 2025 · JavaScript automatically allocates memory when objects are created and frees it when they are not used anymore (garbage collection).
  14. [14]
  15. [15]
    Malvertising's New Threat: Exploiting Trusted Google Domains
    A new malvertising scheme is turning legitimate e-commerce sites into phishing traps without the knowledge of site owners or advertisers.
  16. [16]
    Hackers Leveraging Trusted Google Domains to Deploy Malicious ...
    May 22, 2025 · A new wave of malvertising attacks is exploiting integrations with Google APIs to inject malicious scripts into legitimate e-commerce ...
  17. [17]
    [PDF] Same Origin Method Execution (SOME) Exploiting A Callback for ...
    Nov 5, 2014 · method execution by a sole usage of alphanumeric ... callback endpoints (especially in JSONP instances), the callback function argument may.
  18. [18]
    [PDF] Reflected File Download a New Web Attack Vector - Black Hat
    less common Content-Type. • JSON APIs and JSONP are extremely vulnerable ... • Your site can be used to attack users! • Attackers get full control of ...
  19. [19]
    Preventing Cross-Site Request Forgery (CSRF) Attacks in ASP.NET ...
    Sep 29, 2022 · Moreover, if you enable cross-domain support, such as CORS or JSONP, then even safe methods like GET are potentially vulnerable to CSRF attacks, ...
  20. [20]
    [PDF] Web-based Attacks on Host-Proof Encrypted Storage - USENIX
    SpiderOak JSONP CSRF Attack The SpiderOak website uses AJAX with JSONP to retrieve data about the user's devices, directory contents and share rooms. So ...
  21. [21]
    JSONP and DOCTYPE Errors - javascript - Stack Overflow
    Jul 12, 2012 · This is often caused by <script src=""></script> (i.e. a relative URI pointing at the current, HTML, document)) or one of the scripts pointing ...JSONP Syntax Error - javascript - Stack OverflowRunning script tags fetched with jsonp - Stack OverflowMore results from stackoverflow.com
  22. [22]
    SyntaxError: JSON.parse: bad parsing - JavaScript - MDN Web Docs
    Jul 8, 2025 · JSON.parse() parses a string as JSON. This string has to be valid JSON and will throw this error if incorrect syntax was encountered.
  23. [23]
  24. [24]
    [PDF] 11 Abusing JSONP with Rosetta Flash
    SWF file to another one composed of only alphanumeric characters, so that it can be passed as a JSONP callback and then reflected by the endpoint ...
  25. [25]
    jQuery JSONP problem in IE6 - ajax - Stack Overflow
    Sep 24, 2008 · When I make calls between domains (XSS) using JSONP, Internet Explorer 6 locks up. Specifically, the CPU spikes to 100% and the 'success' callback is never ...I don't get how JSONP is ANY different from AJAX - Stack OverflowNot able to access cross domain JSON data in IE 10 browser using ...More results from stackoverflow.comMissing: modern inconsistencies
  26. [26]
    JSONP call fails in Internet Explorer 11 and Google Maps API #39496
    Oct 29, 2020 · JSONP calls only fail in Internet Explorer with the Google Maps API. I tried other JSONP endpoints, and they seem to work fine. So, if you think ...Missing: inconsistencies | Show results with:inconsistencies
  27. [27]
    Practical JSONP Injection – Security Café
    Jan 18, 2017 · JSONP injection is a lesser known but quite widespread and dangerous vulnerability and it surfaced in the last years due to the high rate of ...Missing: element | Show results with:element
  28. [28]
    JSONP demystified: What it is and why it exists - LogRocket Blog
    Nov 21, 2019 · Prior to the adoption of the Cross-Origin Resource Sharing (CORS) standard, JSONP was the only option to get a JSON response from a server of a ...Missing: history invention
  29. [29]
    JSONP 'finished' callback should not be obfuscated · Issue #14223 ...
    Issues ... The way the JSONP callbacks are named should be ... But finished() is a function on JsonpConnection_ that is not protected from minification.
  30. [30]
    Better JavaScript Minification - A List Apart
    Apr 20, 2010 · The nice thing about JSONP is that it relies on the existence of just one global identifier, the function to which the result must be passed ( ...Missing: padding | Show results with:padding
  31. [31]
    JSONP for cross-site Callbacks - Rick Strahl's Web Log
    Jul 4, 2007 · JSONP is an unofficial protocol that allows making cross domain calls by generating script tags ... hack a long long time ago in the late 90's. I ...
  32. [32]
    JSON - Wikipedia
    JSON is an open standard file format and data interchange format that uses human-readable text to store and transmit data objects consisting of name–value ...
  33. [33]
    Secret Google JSON API
    Nov 19, 2006 · The API uses JSON, so creating applications in JavaScript is easy. You must know that this API is unofficial, so the details can change. Google ...
  34. [34]
    jQuery 1.2 Released
    Sep 10, 2007 · JSONP is a technique that allows you to transfer JSON data across multiple domains. jQuery now supports JSONP natively – if you attempt to load ...
  35. [35]
    Twitter API v1.1 User Timeline JavaScript Solution - Edd Mann
    Dec 5, 2013 · Using v1.0 of the Twitter API, this was a very simple process, giving access to a JSONP response with the publicly available tweets of a ...
  36. [36]
    JSON Response Format - Flickr
    To return an API response in JSON format, send a parameter " format " in the request with a value of " json ". Object Representation. Some simple rules are used ...
  37. [37]
    JSONP with dojo/request - Dojo Toolkit Tutorial
    Bob Ippolito originally introduced the JSONP technique way back in 2005, and today many existing services from Google, GitHub, Facebook (to name a few) all ...
  38. [38]
    JSONP and Content Security Policy - CentralCSP
    Jun 8, 2025 · While JSONP was once a useful technique, it's now considered outdated and potentially dangerous. Modern web applications should use CORS for ...
  39. [39]
    JSONP Demo - Beeceptor
    JSONP (JSON with padding) represents a traditional method used to retrieve JSON data across different domains. This technique enables web applications to ...
  40. [40]
    2024 | Official jQuery Blog
    Jul 17, 2024 · Automatic JSONP promotion removed. Previously, jQuery.ajax with dataType: "json" with a provided callback would be converted to a JSONP request.
  41. [41]
    JSONP legacy protocol deprecation - Stripe: Help & Support
    The JSONP communication protocol is a legacy protocol that very old versions of browsers rely on. We are ending support for JSONP in our APIs. What this means ...